xmcp Application
This project was created with create-xmcp-app.
Getting Started
First, run the development server:
This will start the MCP server with the selected transport method.
Project Structure
This project uses the structured approach where tools, prompts, and resources are automatically discovered from their respective directories:
src/tools- Tool definitionssrc/prompts- Prompt templatessrc/resources- Resource handlers
Tools
Each tool is defined in its own file with the following structure:
Prompts
Prompts are template definitions for AI interactions:
Resources
Resources provide data or content with URI-based access:
Adding New Components
Adding New Tools
To add a new tool:
Create a new
.tsfile in thesrc/toolsdirectoryExport a
schemaobject defining the tool parameters using ZodExport a
metadataobject with tool informationExport a default function that implements the tool logic
Adding New Prompts
To add a new prompt:
Create a new
.tsfile in thesrc/promptsdirectoryExport a
schemaobject defining the prompt parameters using ZodExport a
metadataobject with prompt information and roleExport a default function that returns the prompt text
Adding New Resources
To add a new resource:
Create a new
.tsfile in thesrc/resourcesdirectoryUse folder structure to define the URI (e.g.,
(users)/[userId]/profile.ts→users://{userId}/profile)Export a
schemaobject for dynamic parameters (optional for static resources)Export a
metadataobject with resource informationExport a default function that returns the resource content
Building for Production
To build your project for production:
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.jsSTDIO:
node dist/stdio.js
Given the selected transport method, you will have a custom start script added to the package.json file.
For HTTP:
For STDIO: