# Testing

## ✅ Quick Test Results

Your MCP server is **fully functional**! All 35 MCP tools and 35+ REST API endpoints are tested:

**MCP Tools (35):** CRUD (create, get, update, delete, add\_dialog, add\_analysis, add\_attachment, create\_from\_template), Search (search\_vcons, search\_vcons\_content, search\_vcons\_semantic, search\_vcons\_hybrid), Contract (vcon\_fetch, vcon\_search, vcon\_capabilities, vcon\_taxonomy, describe\_response\_shape), Tags (manage\_tag, get\_tags, remove\_all\_tags, search\_by\_tags, get\_unique\_tags), Schema (get\_schema, get\_examples), Database (get\_database\_shape, get\_database\_stats, analyze\_query, get\_database\_size\_info, get\_smart\_search\_limits), Analytics (get\_database\_analytics, get\_monthly\_growth\_analytics, get\_content\_analytics, get\_tag\_analytics, get\_attachment\_analytics, get\_database\_health\_metrics)

**REST API (30+ endpoints):** Full parity with MCP tools via HTTP/JSON at `/api/v1`

## 🔧 Three Ways to Test

### Option 1: MCP Inspector (Best for Development) 🎯

The MCP Inspector provides a GUI for testing your server.

**Start the Inspector:**

```bash
# Using npm script (recommended)
npm run test:console

# Or directly with npx
npx @modelcontextprotocol/inspector tsx src/index.ts
```

Then open **<http://localhost:5173>** in your browser.

**What you can do:**

* Browse available tools visually
* Test each tool with form inputs
* See real-time request/response logs
* Debug tool parameters and results

**Try these in the Inspector:**

1. **search\_vcons**

   ```json
   {
     "subject": "Chevrolet",
     "limit": 5
   }
   ```
2. **get\_vcon**

   ```json
   {
     "uuid": "01f344c1-02c2-478f-9441-f25bdc85bdaf"
   }
   ```

***

### Option 2: Claude Desktop (Best for Real Usage) 💬

Integrate your MCP server directly with Claude Desktop.

**Setup Steps:**

1. **Copy the config file:**

   ```bash
   cp /Users/thomashowe/Documents/GitHub/vcon-mcp/claude-desktop-config.json \
      ~/Library/Application\ Support/Claude/claude_desktop_config.json
   ```
2. **Restart Claude Desktop**
3. **Verify it loaded:**
   * Look for the 🔌 MCP icon in Claude Desktop
   * It should show "vcon" as an available server
   * You should see 35 tools available

**Test in Claude:**

Try asking Claude:

* "Search for vCons about Chevrolet vehicles"
* "Get the vCon with UUID 01f344c1-02c2-478f-9441-f25bdc85bdaf"
* "Show me conversations from today"
* "Create a new vCon for a customer support call"

**Example prompts:**

```
"Find all conversations mentioning Nissan from the last week"

"Get the full details of vCon 01f344c1-02c2-478f-9441-f25bdc85bdaf 
and summarize the conversation"

"Create a new vCon for a customer service call between an agent 
named Alice and a customer named Bob about a product inquiry"

"Add sentiment analysis to vCon 01f344c1-02c2-478f-9441-f25bdc85bdaf 
showing positive sentiment with score 0.85"
```

***

### Option 3: Direct Script Testing (Best for Automation) 🤖

Run the test script directly to verify all functionality.

**Run tests:**

```bash
cd /Users/thomashowe/Documents/GitHub/vcon-mcp
npx tsx scripts/test-mcp-tools.ts
```

### Unit test suite

Run the Vitest suite (includes search RPC method tests):

```bash
npm test
```

Relevant files:

* `tests/search.test.ts` – RPC wiring for keyword, semantic, hybrid search

**What it tests:**

1. ✅ Search vCons by subject
2. ✅ Retrieve full vCon with all relationships
3. ✅ Create new vCon with parties
4. ✅ Add dialog to vCon
5. ✅ Add AI analysis
6. ✅ Add attachments
7. ✅ Search by party
8. ✅ Delete vCon

**Output shows:**

* Each test step with results
* Actual data from your database
* Success/failure status
* Complete validation

***

## 📊 Sample Test Data

Your database has real production data:

### Example vCon UUIDs to test with:

```
01f344c1-02c2-478f-9441-f25bdc85bdaf  - Chevrolet Silverado inquiry
ac8b993d-f67d-4579-8d38-63e56b71234a  - Champion Chevrolet GMC
554f6095-8b89-40a6-9103-64d905b5b385  - Pride Chevrolet
002c489d-3eec-4596-bc72-da4eb3b05caa  - Burleson Nissan reservation
```

### Sample Queries:

**Search by subject:**

```json
{
  "subject": "Chevrolet",
  "limit": 10
}
```

**Search by party:**

```json
{
  "party_name": "Denis Duarte",
  "limit": 5
}
```

**Date range search:**

```json
{
  "start_date": "2025-08-01",
  "end_date": "2025-09-01",
  "limit": 20
}
```

***

## 🎯 Recommended Testing Flow

### 1. **Quick Validation** (2 minutes)

```bash
npx tsx scripts/test-mcp-tools.ts
```

✅ Confirms all tools work

### 2. **Interactive Testing** (10 minutes)

```bash
npm run test:console
```

* Open <http://localhost:5173>
* Test each tool manually
* Experiment with different parameters

### 3. **Real Usage** (ongoing)

* Set up Claude Desktop integration
* Use natural language to interact with vCons
* Build workflows with AI assistance

***

## 🔍 Debugging

### View Server Logs

```bash
# Find the dev server process
ps aux | grep "tsx watch"

# Server logs appear in the terminal where you ran `npm run dev`
```

### Database Queries

```bash
# Connect to database
psql postgresql://postgres:postgres@127.0.0.1:54322/postgres

# Useful queries
SELECT COUNT(*) FROM vcons;
SELECT uuid, subject FROM vcons LIMIT 5;
SELECT * FROM parties WHERE name ILIKE '%customer%';
```

### Check Supabase Status

```bash
supabase status
```

***

## 🚀 Advanced Testing

### Load Testing

Create a script to generate many vCons:

```bash
for i in {1..100}; do
  npx tsx -e "
    import { getSupabaseClient } from './src/db/client.js';
    import { VConQueries } from './src/db/queries.js';
    const supabase = getSupabaseClient();
    const queries = new VConQueries(supabase);
    await queries.createVCon({
      vcon: '0.4.0',
      uuid: crypto.randomUUID(),
      created_at: new Date().toISOString(),
      subject: 'Load Test vCon $i',
      parties: [{ name: 'Test User' }]
    });
  "
done
```

### Integration Testing

Test with external systems:

```typescript
// Example: Test with webhook
const result = await fetch('YOUR_WEBHOOK_URL', {
  method: 'POST',
  body: JSON.stringify({
    tool: 'search_vcons',
    params: { subject: 'test' }
  })
});
```

***

## 📝 Test Checklist

Before deploying:

* [ ] All 35 MCP tools tested via script
* [ ] REST API endpoints tested (`npm test` includes supertest coverage)
* [ ] MCP Inspector loads and shows tools
* [ ] Can search vCons by subject
* [ ] Can retrieve full vCon with relationships
* [ ] Can create new vCons
* [ ] Can add dialogs, analysis, attachments
* [ ] Can delete vCons
* [ ] Claude Desktop integration works (optional)
* [ ] Database queries return correct data
* [ ] Server restarts properly

***

## 🎉 You're Ready!

Your MCP server is fully tested and operational. Choose your preferred testing method:

* **Quick validation**: Run `npx tsx scripts/test-mcp-tools.ts`
* **Interactive testing**: Use MCP Inspector
* **Production usage**: Integrate with Claude Desktop

All 4,443 production vCons are loaded and accessible!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mcp.conserver.io/development/testing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
