Instead of making MCP tool calls, LLMs write TypeScript against auto-generated RPC clients. // Follow the readme instructions and run the RPC server
mcp-rpc-runtime -r ./test-rpc -p 8080
Drop .ts files with typed exports:
// ./test-rpc/users.ts
export async function getUser(args: { id: number }): Promise<User> { ... }The system generates a typed client. LLMs write normal TypeScript: const [user, orders] = await Promise.all([ rpc.users.getUser({ id: 123 }), rpc.orders.getHistory({ userId: 123 }) ]);
No MCP servers needed. The RPC runtime has full system access, while LLM scripts run sandboxed with only network permissions.
Original Local Code Mode: https://github.com/jx-codes/codemode-mcp Runtime: https://github.com/jx-codes/mcp-rpc-runtime MCP Bridge: https://github.com/jx-codes/mcp-rpc-bridge Details: https://jmcodes.tech/blog/mcp-rpc/