
xmcp Application
This project was created with create-xmcp-app.
Getting Started
First, run the development server:
npm run dev# oryarn dev# orpnpm dev
This will start the MCP server with the selected transport method.
Project Structure
This project uses the structured approach where tools are automatically discovered from the src/tools
directory. Each tool is defined in its own file with the following structure:
import { z } from 'zod'import { type InferSchema } from 'xmcp'// Define the schema for tool parametersexport const schema = {a: z.number().describe('First number to add'),b: z.number().describe('Second number to add'),}// Define tool metadataexport const metadata = {name: 'add',description: 'Add two numbers together',annotations: {title: 'Add Two Numbers',readOnlyHint: true,destructiveHint: false,idempotentHint: true,},}// Tool implementationexport default async function add({ a, b }: InferSchema<typeof schema>) {return {content: [{ type: 'text', text: String(a + b) }],}}
Adding New Tools
To add a new tool:
- Create a new
.ts
file in thesrc/tools
directory - Export a
schema
object defining the tool parameters using Zod - Export a
metadata
object with tool information - Export a default function that implements the tool logic
Building for Production
To build your project for production:
npm run build# oryarn build# orpnpm build
This will compile your TypeScript code and output it to the dist
directory.
Running the Server
You can run the server for the transport built with:
- HTTP:
node dist/http.js
- STDIO:
node dist/stdio.js
Alternatively, you can use the script which will automatically start the appropriate transport based on your project configuration:
npm run start# oryarn start# orpnpm start
The start script will automatically run either the HTTP or STDIO transport depending on which transport method was selected when you initialized the project.