Transcript MCP spike
README.md
# Transcript MCP spike
A small Model Context Protocol server that lets an LLM inspect and search mock
transcripts stored in `data/transcripts.json`.
## Requirements
- Node.js 18 or newer
- npm
## Transports
This server supports two transports:
1. **stdio** — the MCP client spawns the process (default)
2. **Streamable HTTP** — you run the server and point the client at
`http://127.0.0.1:3000/mcp`
### HTTP (localhost)
Start the server:
```sh
npm run mcp:http
```
Or with auto-reload while editing TypeScript:
```sh
npm run dev:http
```
Then configure the client with a URL:
```json
{
"mcpServers": {
"transcripts": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}
```
Optional env vars:
- `PORT` — listen port (default `3000`)
- `MCP_TRANSPORT=http` — same as passing `--http`
Inspector:
```sh
npx @modelcontextprotocol/inspector http://127.0.0.1:3000/mcp
```
### stdio (spawned by the client)
No separate server process. Point the client at the TypeScript source:
```json
{
"mcpServers": {
"transcripts": {
"command": "npx",
"args": [
"tsx",
"/absolute/path/to/mcp-spike/src/server.ts"
]
}
}
}
```
Or use the compiled build after `npm run build`:
```json
{
"mcpServers": {
"transcripts": {
"command": "node",
"args": ["/absolute/path/to/mcp-spike/dist/server.js"]
}
}
}
```
## MCP capabilities
Resource:
- `transcripts://all` returns the complete JSON dataset.
Tools:
- `list_transcripts` lists metadata and supports participant and tag filters.
- `get_transcript` returns a full transcript by ID.
- `search_transcripts` searches titles, participants, tags, speakers, and spoken
text.
Edits to `data/transcripts.json` are picked up on the next tool/resource call.
Invalid data is rejected using a Zod schema.
TDQS
A4.1/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: listing metadata, retrieving a single transcript by ID, and searching across transcript content. No overlap or ambiguity.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (list_transcripts, get_transcript, search_transcripts), with minor singular/plural variation that does not undermine the pattern.
Tool Count5/5
Three tools is a well-scoped set for a transcript retrieval service, covering the essential read operations without unnecessary bloat.
Completeness4/5
The read side is well covered (list, get, search), but write operations like create, update, or delete are absent. For a 'spike' server, this is a minor gap.
Maintenance
ActivitySlowing
ResponsivenessNo issues