tRPC <-> MCP

by Jacse

42 stars
402 downloads
Not rated
GitHub

About

tRPC MCP is a library that allows you to serve tRPC routes via the Model Context Protocol (MCP). It is designed for developers who want to expose their tRPC procedures as MCP tools using a standard transport like stdio.

Details

Author
Jacse
GitHub stars
42
Downloads
402
Categories
Other, API

- Integrates tRPC routes with the Model Context Protocol
- Uses openapi meta for route metadata and documentation
- Supports stdio transport via StdioServerTransport
- Lightweight setup with minimal code changes
- Works with existing tRPC v11+ routers

First, add McpMeta to your tRPC initialization and enable openapi meta on each procedure. Then use createMcpServer from the trpc-mcp package to build an MCP server, passing your app router. Finally, connect the server to a transport (e.g., StdioServerTransport) and start listening.

tRPC <-> MCP

Serve tRPC routes via MCP.

Usage

2. Add to meta

import { initTRPC } from '@trpc/server';
import { type McpMeta } from 'trpc-to-openapi';

const t = initTRPC.meta<McpMeta>().create();

3. Enable for routes

export const appRouter = t.router({
  sayHello: t.procedure
    .meta({ openapi: { enabled: true, description: 'Greet the user' } })
    .input(z.object({ name: z.string() }))
    .output(z.object({ greeting: z.string() }))
    .query(({ input }) => {
      return { greeting: Hello ${input.name}! };
    });
});

4. Serve

import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { createMcpServer } from 'trpc-mcp';

const mcpServer = createMcpServer(
{ name: 'trpc-mcp-example', version: '0.0.1' },
appRouter,
);

const transport = new StdioServerTransport();
await mcpServer.connect(transport);

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.