About Simple MCP
Simple MCP is a TypeScript library for building MCP servers with a small API surface. It includes Zod-based parameter validation and supports both direct and class-based tool implementations.
Key features
- 01Minimal API for server creation
- 02TypeScript type safety
- 03Zod parameter validation
- 04Direct and class-based tool definitions
Use cases
- 01Create an MCP server with a small amount of code
- 02Validate tool parameters with Zod
- 03Implement tools as classes in TypeScript
MCP support
The library implements the Model Context Protocol and provides APIs for creating MCP servers and registering tools.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESimple MCP
A simple TypeScript library for creating MCP (Model Context Protocol) servers.
Features
- Simple API: Create MCP servers with minimal code
- Type Safety: Full TypeScript integration
- Parameter Validation: Built-in validation with Zod
- MCP Compatible: Fully implements the Model Context Protocol
Installation
npm install simple-mcp
Quickstart
import { McpServer } from 'simple-mcp';
import { z } from 'zod';
// Create a server instance
const server = new McpServer({ name: 'my-server' });
// Register the tool with the server
server.tool({
name: 'greet',
parameters: {
name: z.string().describe('Person\'s name')
},
execute: async ({ name }) => {
return {
content: [
{
type: 'text',
text: `Hello, ${name}! Nice to meet you.`
}
]
};
}
});
// Start the server
server.start({ transportType: 'stdio' });
Class-based Implementation
You can also implement MCP tools using classes:
import { McpServer, type McpTool } from 'simple-mcp';
import { z, ZodObject } from 'zod';
const parameters = {
name: z.string().describe('The name is required'),
};
class GreetTool implements McpTool<typeof parameters> {
public readonly name = 'greet';
public readonly parameters = parameters;
public async execute({ name }: z.infer<ZodObject<typeof this.parameters>>) {
return {
content: [
{
type: 'text',
text: `Hello, ${name}! Nice to meet you.`,
},
],
};
}
}
// Initialize a new MCP server with the name 'greet-server'
const server = new McpServer({ name: 'greet-server' });
// Create an instance of the GreetTool class
const greetTool = new GreetTool();
// Register the tool with the server
server.tool(greetTool);
// Start the server using stdio as the transport method
server.start({ transportType: 'stdio' });
Examples
Check out the examples directory for more complete examples:
- Greeting Tool - Simple greeting example
- Calculator Tool - Mathematical operations example
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.