Skip to main content
The mcp-host package provides a single function that creates an MCP server with Toolshed’s four tools.

createMcpServer(deps)

import { createMcpServer } from "@toolshed/mcp-host";

const server = createMcpServer({
  runtime,
  allTools,
  searchTools,
  elicitation,    // optional
  resumeRemote,   // optional
});

McpServerDeps

FieldTypeRequiredDescription
runtimeRuntimeYesExecution runtime (local or Vercel)
allToolsToolDefinition[]YesFull tool catalog
searchTools(query, limit) => ToolDefinition[]YesSearch function
elicitationElicitationEngineNoLocal elicitation engine
resumeRemote(executionId, approved, data?) => Promise<unknown>NoRemote resume callback

Created tools

The returned McpServer exposes four tools:
ToolDescriptionSee
runExecute TypeScript in sandboxrun
search_toolsFuzzy search tool catalogsearch_tools
read_toolGet tool definition by pathread_tool
resumeResolve pending elicitationresume

Usage with stdio transport

import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const transport = new StdioServerTransport();
await server.connect(transport);
Uses the McpServer class from @modelcontextprotocol/sdk.