Building AI Agents with MCP and Transcription Data
Model Context Protocol (MCP) is Anthropic's standard for connecting AI agents to external data sources. Here's how to expose your transcript archive to Claude Desktop and custom agents — securely, queryably, with EU data residency.
Building AI Agents with MCP and Transcription Data
If you've been building with large language models for the last two years, you've felt the same friction repeatedly: the model is smart, but it has no memory of *your* data. Every conversation starts from zero. You can paste context in, but the moment you close the chat, that context evaporates. RAG pipelines help, but each one is bespoke — different vector stores, different retrieval logic, different glue code, all reimplemented per project.
The Model Context Protocol (MCP), introduced by Anthropic in late 2024, is the first serious attempt at a standard for this problem. It defines how AI clients (Claude Desktop, your custom agent, future ChatGPT plugins) discover and call external context sources in a uniform way. Think of it as "LSP for AI" — Language Server Protocol was the equivalent abstraction that let any editor talk to any language tooling. MCP wants to do the same for AI and external data.
For anyone with a meaningful corpus of transcripts — meeting archives, interview libraries, podcast back-catalogues, customer call recordings — MCP is the missing piece that makes those transcripts AI-native. This article walks through what MCP is, why it matters specifically for transcription data, and how DeepScript exposes transcripts via MCP for use with Claude Desktop and custom agents.
What MCP actually is
MCP is a JSON-RPC protocol over stdio or HTTP. A server exposes three kinds of capabilities:
- Resources — addressable content the client can read (files, database rows, transcripts).
- Tools — actions the client can invoke (search, create, update).
- Prompts — reusable prompt templates the client can offer the user.
A client (Claude Desktop is the reference implementation; many others exist now) connects to the server, lists the capabilities, and exposes them to the underlying LLM. When the model decides it needs context, it calls a tool or reads a resource. The result feeds back into the conversation.
What makes this powerful is the standardization. You don't write Claude-specific code. You write an MCP server once, and any MCP-compatible client can use it. The same server can serve Claude Desktop, a custom agent built on the Anthropic SDK, an internal tool built with mcp-use in Python, or whatever client appears next.
Why transcription data benefits more than most
Most data sources you might connect via MCP — databases, filesystems, code repositories — already have decent tooling around them. You can search a Postgres database. You can grep a codebase. The marginal value of an MCP wrapper is real but moderate.
Transcripts are different. They have three properties that make them painful to work with by hand:
- They are long. A one-hour meeting is 8,000–12,000 words. Pasting that into a chat window every time you want to ask a question about it is impractical.
- They are unstructured. Unlike rows in a database, you can't query "show me all transcripts where the customer mentioned pricing concerns." Or rather, you couldn't, until LLMs got good at semantic search.
- They accumulate fast. A sales team running 30 demo calls per week generates 1,500 transcripts per year. Manually indexing this is hopeless.
The combination — long, unstructured, growing — is exactly what an AI agent with semantic access excels at. The agent reads the user's question, queries the transcript corpus, retrieves the relevant snippets, and answers in context. The MCP layer is what makes this practical without writing a custom RAG pipeline for every project.
What the MCP server should expose
A well-designed MCP server for transcription data exposes these capabilities:
Resources
transcription://{id}— individual transcript by ID, returning the full text plus metadata (date, participants, duration).transcription://{id}/segments— segmented version with timestamps for each segment.transcription://search?q={query}— search results returned as a list of matching transcripts with relevance snippets.
Tools
search_transcripts(query, date_range?, speaker?)— semantic + keyword search across the corpus. Returns a ranked list of relevant transcript IDs with brief snippets.get_transcript(id, include_timestamps?)— fetch the full content of a specific transcript.get_transcript_summary(id)— get a summary; if not pre-computed, compute on demand.list_transcripts(date_range?, tag?)— paginated listing.find_quote(transcription_id, quote_text)— locate a specific phrase and return the timestamp where it was said.
Prompts
meeting_followup(meeting_id)— "Summarize the meeting and list action items by owner."interview_themes(transcripts: list)— "Identify recurring themes across these interviews."find_decision(query)— "Find when this decision was made and who made it."
The exact shape of the server matters less than two principles: tools should return small, focused payloads (not entire transcripts when a snippet would do), and the search tool should be smart enough that the agent rarely needs more than one or two retrievals to answer a question.
A worked example: Claude Desktop searching an interview archive
Imagine you're a UX researcher with 80 interview transcripts from the last six months, all transcribed with DeepScript. With MCP configured, your interaction looks like this:
You: I'm prepping the synthesis for our onboarding research. What did people say about the first-run experience being confusing? Claude: *[uses search_transcripts tool with query "first-run experience confusing onboarding"]* I found 14 transcripts that touch on this. The main themes are: 1. Account setup feels disconnected from the value prop (mentioned in interviews 23, 31, 45). Several participants said they didn't understand why they needed to enter billing information before seeing the product work. 2. The empty state in the dashboard is a dead end (interviews 12, 18, 29, 31, 50). Quote from interview 29 at 14:32: *"I logged in and there was nothing. I didn't know what to do next."* 3. Documentation is hard to find (interviews 5, 12, 41, 50, 61). The pattern is users opening multiple tabs trying to find getting-started content. Want me to pull the specific quotes for any of these themes, or look at how this varied by user segment?This is the kind of work that would take a human researcher half a day. With MCP wiring an AI agent to the transcript corpus, it takes seconds — and the agent can follow up with deeper queries, cross-reference participants, or correlate with other data sources.
Configuring DeepScript as an MCP server
DeepScript exposes transcripts over MCP through a server you can run locally or as a hosted endpoint. The local pattern is the most common:
npm install -g @deepscript/mcp-serverThen in your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"deepscript": {
"command": "deepscript-mcp",
"args": [],
"env": {
"DEEPSCRIPT_API_KEY": "ds_live_..."
}
}
}
}Restart Claude Desktop. The DeepScript server appears in the MCP indicator. You can now ask Claude about your transcripts conversationally.
For custom agents, the same MCP server can be wired up through the Anthropic SDK's MCP support or any MCP-compatible client library.
Pro plan and MCP
DeepScript's Pro subscription (€22/month) is what unlocks unlimited MCP and REST access. The reason is straightforward: AI agents make many more API calls than a human ever would. A single research session might issue 30–50 searches across the transcript archive. Pay-per-use pricing doesn't fit that pattern well; a flat subscription does.
If you're building agents on top of your transcript data, the Pro plan is the right tier. It also gives you long-term retention — agents work better when they can search a year of interview transcripts, not just the last 30 days.
Privacy considerations for MCP setups
One of the often-overlooked aspects of MCP: the AI client (Claude, etc.) sees whatever the server returns. That means if you connect Claude Desktop to a transcript corpus that includes sensitive data, that data flows through Anthropic's infrastructure during the conversation.
For most teams this is fine — Anthropic has solid privacy guarantees, doesn't train on API conversations, and is itself reasonably aligned with EU expectations. But it's worth being explicit about the data flow:
- The transcripts themselves stay on DeepScript servers in Germany. They aren't replicated to Anthropic.
- Snippets and search results pass through the Claude conversation. Whatever the LLM sees, Anthropic sees.
- You control the granularity. A well-configured MCP server returns small snippets, not entire transcripts, which limits exposure.
For regulated environments where even snippet exposure to a US LLM provider is unacceptable, you can either run a locally-hosted EU-based LLM with MCP support (several open-source options exist) or restrict the AI agent to operate on metadata only (titles, participants, dates) without surfacing transcript content.
Why this matters more than it looks
MCP isn't just a protocol — it's the beginning of a shift in how knowledge work gets done. Until now, "AI in the workflow" has meant either generic chatbots that don't know your data, or bespoke RAG systems that take months to build and break every time you change a model.
MCP turns external data into a commodity input. You stand up an MCP server for your transcripts, your CRM, your codebase, your documentation, your design files. Any AI agent — present or future — can talk to all of them in a uniform way. The integration cost drops by an order of magnitude.
For transcription specifically, this means meeting archives, interview libraries, and call recordings finally become first-class citizens in your AI workflow. Not as files to be pasted into a chat, but as a queryable, semantic, conversational data source.
Practical next steps
If you're already a DeepScript customer:
- Upgrade to the Pro plan to get unlimited MCP access.
- Install the
@deepscript/mcp-serverpackage. - Add the config block to Claude Desktop (or your preferred MCP client).
- Start asking your AI assistant about your transcripts.
If you're not yet a customer, the same flow applies after you transcribe your archive through the standard upload or API path.
For developers building their own agents, our MCP integration page has the full schema for the DeepScript MCP server, including all tool signatures, resource patterns, and example agent code in Python and TypeScript. It's the most direct way to wire transcription into an AI agent that respects EU data residency without giving up the productivity benefits of modern LLMs.