MCP Integration

Connect Claude to your meeting transcripts via Model Context Protocol (MCP).

What is MCP?

Model Context Protocol (MCP) is Anthropic's standard for connecting AI assistants to external tools and data sources. Keep It Krispy provides an MCP server that gives Claude access to your meeting data.

MCP Server Location: After installation, the MCP server is built at:
~/keep-it-krispy/lambda/mcp-server-ts/dist/stdio-server.cjs

Available Tools

The MCP server exposes three tools to Claude:

list_transcripts

List recent meetings with metadata (title, date, duration, speakers). Filter by date range or speaker.

{
  "start_date": "2025-01-01",
  "end_date": "2025-01-15",
  "speaker": "john",
  "limit": 10
}

search_transcripts

Semantic search across all meetings. Find content by meaning, not just keywords.

{
  "query": "budget concerns",
  "limit": 5
}

get_transcripts

Fetch full transcript content by S3 key. Returns summary, notes, action items, and full text.

{
  "keys": ["meetings/2025/01/14/...json"]
}

Claude Desktop

Add the MCP server to Claude Desktop by editing the config file:

1. Open Config File

~/Library/Application Support/Claude/claude_desktop_config.json

Open with: open -e ~/Library/Application\ Support/Claude/claude_desktop_config.json

%APPDATA%\Claude\claude_desktop_config.json

2. Add MCP Server Config

Add this to your config file (replace {account-id} with your AWS account ID):

{
  "mcpServers": {
    "krisp": {
      "command": "node",
      "args": ["/Users/YOUR_USERNAME/keep-it-krispy/lambda/mcp-server-ts/dist/stdio-server.cjs"],
      "env": {
        "AWS_REGION": "us-east-1",
        "KRISP_S3_BUCKET": "krisp-transcripts-{account-id}",
        "DYNAMODB_TABLE": "krisp-transcripts-index",
        "VECTOR_BUCKET": "krisp-vectors-{account-id}",
        "VECTOR_INDEX": "transcript-chunks",
        "AWS_PROFILE": "default"
      }
    }
  }
}
Tip: The installer prints your exact configuration at the end. Copy it from there.

3. Restart Claude Desktop

Quit Claude Desktop completely (Cmd+Q) and reopen it. The krisp server should appear in your MCP servers list.

Troubleshooting

Check the MCP server logs:

tail -f ~/Library/Logs/Claude/mcp-server-krisp.log

Common issues:

  • Server won't turn on: Check AWS credentials in the env section
  • Tools not working: Verify AWS_PROFILE points to valid credentials
  • Connection errors: Make sure Node.js is in your PATH

Claude Code (CLI)

Add the MCP server to Claude Code with a single command:

Add MCP Server

claude mcp add --transport stdio \
  --env AWS_REGION=us-east-1 \
  --env KRISP_S3_BUCKET=krisp-transcripts-{account-id} \
  --env DYNAMODB_TABLE=krisp-transcripts-index \
  --env VECTOR_BUCKET=krisp-vectors-{account-id} \
  --env VECTOR_INDEX=transcript-chunks \
  --env AWS_PROFILE=default \
  --scope user \
  krisp -- node ~/keep-it-krispy/lambda/mcp-server-ts/dist/stdio-server.cjs
Scope options:
  • --scope user - Available in all projects
  • --scope project - Available only in current project

Verify Installation

claude mcp list

You should see krisp in the list of servers.

Test It

Start a Claude Code session and try:

claude "what was my last meeting about?"

Other MCP Clients

The Keep It Krispy MCP server works with any MCP-compatible client. It uses the standard stdio transport.

Server Details

PropertyValue
Transportstdio (stdin/stdout)
Commandnode
Args["/path/to/stdio-server.cjs"]
ProtocolMCP 2025-06-18

Required Environment Variables

VariableDescription
AWS_REGIONAWS region (e.g., us-east-1)
KRISP_S3_BUCKETS3 bucket for transcripts
DYNAMODB_TABLEDynamoDB table name
VECTOR_BUCKETS3 bucket for vectors
VECTOR_INDEXVector index name
AWS_PROFILEAWS credentials profile (optional)

Standalone Testing

Test the MCP server directly from command line:

# List tools
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | \
  AWS_PROFILE=default \
  AWS_REGION=us-east-1 \
  KRISP_S3_BUCKET=krisp-transcripts-123456789012 \
  DYNAMODB_TABLE=krisp-transcripts-index \
  VECTOR_BUCKET=krisp-vectors-123456789012 \
  VECTOR_INDEX=transcript-chunks \
  node ~/keep-it-krispy/lambda/mcp-server-ts/dist/stdio-server.cjs

# Call a tool
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"list_transcripts","arguments":{"limit":3}},"id":1}' | \
  ... (same env vars) ... \
  node ~/keep-it-krispy/lambda/mcp-server-ts/dist/stdio-server.cjs

Direct AWS Access (No MCP)

You can also query your meeting data directly using AWS APIs:

List Recent Transcripts (DynamoDB)

aws dynamodb scan \
  --table-name krisp-transcripts-index \
  --limit 10 \
  --projection-expression "meeting_id, title, #d, duration" \
  --expression-attribute-names '{"#d": "date"}'

Get Transcript Content (S3)

aws s3 cp s3://krisp-transcripts-{account-id}/meetings/2025/01/14/your-meeting.json -

Semantic Search (S3 Vectors)

S3 Vectors requires the AWS SDK. See the S3 Vectors documentation for query examples.

Debug Logging

The MCP server outputs detailed debug logs to stderr, which Claude Desktop captures in its log files.

View Logs (macOS)

tail -f ~/Library/Logs/Claude/mcp-server-krisp.log

Log Output Example

[KRISP DEBUG 2025-01-14T15:49:38.036Z] Server module loading: {"AWS_PROFILE":"default"}
[KRISP DEBUG 2025-01-14T15:49:38.039Z] S3 client initialized
[KRISP DEBUG 2025-01-14T15:49:38.040Z] DynamoDB client initialized
[KRISP DEBUG 2025-01-14T15:49:38.040Z] Vectors client initialized
[KRISP DEBUG 2025-01-14T15:49:38.043Z] Server connected and ready
[KRISP DEBUG 2025-01-14T15:49:44.102Z] tools/call: list_transcripts: {"args":{"limit":2}}
[KRISP DEBUG 2025-01-14T15:49:44.929Z] list_transcripts: found 2 transcripts in 827ms