Skip to main content
Glama

MCP Tool Starter Kit

by He110te4m
server.ts1.78 kB
import { Server } from '@modelcontextprotocol/sdk/server/index.js' import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js' import pkg from '../package.json' with { type: 'json' } import { getUserInfoHandler, getUserInfoTool } from './tools/example.tool.js' import 'dot-env' // Add this line to load .env file interface ServerOptions { isDebug: boolean } export function startServer(options: ServerOptions) { const { isDebug } = options if (isDebug) { console.error('DEBUG MODE ENABLED') } const server = new Server( { name: pkg.name, version: pkg.version, }, { capabilities: { tools: {}, }, }, ) server.setRequestHandler(ListToolsRequestSchema, async (request) => { if (isDebug) { console.error( 'Received ListToolsRequest:', JSON.stringify(request, null, 2), ) } return { tools: [getUserInfoTool], } }) server.setRequestHandler(CallToolRequestSchema, async (request) => { if (isDebug) { console.error( 'Received CallToolRequest:', JSON.stringify(request, null, 2), ) } if (request.params.name === getUserInfoTool.name) { return getUserInfoHandler(request.params.arguments) } return { content: [{ type: 'text', text: `Unknown tool: ${request.params.name}` }], isError: true, } }) async function run() { const transport = new StdioServerTransport() await server.connect(transport) console.error('MCP Server running on stdio') } run().catch((error) => { console.error('Fatal error running server:', error) process.exit(1) }) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/He110te4m/mcp-starter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server