Skip to main content
Glama
pratnayake-alphasights

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