> For the complete documentation index, see [llms.txt](https://mcp.conserver.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mcp.conserver.io/development/testing.md).

# Testing

## ✅ Quick Test Results

Your MCP server is **fully functional**! All 46 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 46 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 46 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!
