I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

MCP
Un SDK TypeScript pour exécuter des serveurs MCP (Protocole de contexte modèle) avec des capacités de réutilisation de processus
3 years
Works with Finder
1
Github Watches
2
Github Forks
5
Github Stars
mcp-runner
A TypeScript SDK and CLI for running MCP (Model Context Protocol) servers.
Overview
mcp-runner
is designed to facilitate the execution of MCP servers based on configurations defined in cline_mcp_settings.json
. It supports reusable server processes and controlled cleanup, allowing multiple operations to be performed using the same server instance.
You can call it from the command line or use it as a library in your own TypeScript projects or even from other MCP servers.
Features
- Server process reuse across multiple calls
- Graceful termination with timeout handling
- Automatic server lifecycle management
- TypeScript support
- Error handling and logging
Installation
npm install
CLI Usage
The package includes a command-line interface for interacting with MCP servers.
Commands
List Tools
Lists all available tools for a specified MCP server:
npm run cli -- list-tools <server-name>
Example:
npm run cli -- list-tools sequential-thinking
Run Server
Runs a specified MCP server with optional tool name and parameters:
npm run cli -- runserver <server-name> [tool-name] [params] [options]
# or
npm run cli -- runserver <server-name> [params] [options] # uses first available tool
Options:
-
--text
: Output only the text content from the response instead of the full JSON
Examples:
# Run a specific tool
npm run cli -- runserver sequential-thinking sequentialthinking '{"thought": "Initial thought", "thoughtNumber": 1, "totalThoughts": 5, "nextThoughtNeeded": true}'
# Use first available tool
npm run cli -- runserver sequential-thinking '{"thought": "Initial thought", "thoughtNumber": 1, "totalThoughts": 5, "nextThoughtNeeded": true}'
# Output only text content
npm run cli -- runserver sequential-thinking sequentialthinking '{"thought": "Initial thought", "thoughtNumber": 1, "totalThoughts": 1}' --text
Programmatic Usage
Basic Example
import { runServer, terminateServer } from 'mcp-runner';
async function main() {
try {
// First call (specific tool)
const result1 = await runServer('openrouterai', 'chat_completion', {
messages: [
{ role: 'user', content: 'Say hello!' }
]
});
console.log('Result 1:', result1);
// Second call (uses first available tool)
const result2 = await runServer('openrouterai', undefined, {
messages: [
{ role: 'user', content: 'How are you?' }
]
});
console.log('Result 2:', result2);
// Terminate server when done
await terminateServer();
} catch (error) {
console.error('Error:', error);
await terminateServer();
}
}
Error Handling
The SDK includes comprehensive error handling:
- Server process errors
- Tool execution errors
- Timeout handling for graceful termination
- Automatic cleanup on errors
API
runServer(serverName: string, params: Record<string, unknown>)
Runs a tool on the specified server using provided parameters. The server process is reused for subsequent calls until explicitly terminated.
Parameters:
-
serverName
: Name of the server from configuration -
params
: Parameters to pass to the server's tool
Returns: Promise resolving with the server's response
terminateServer()
Terminates the server process managed by the SDK. Should be called when all operations are complete.
Returns: Promise that resolves when the server is terminated
Architecture
ServerManager
The ServerManager
class is implemented as a singleton that manages the lifecycle of MCP server processes. Key responsibilities include:
- Process lifecycle management
- Client connection handling
- Graceful termination
- Error handling and logging
The manager ensures that only one server process is running at any given time and provides methods to start, reuse, and terminate the server.
Configuration
The SDK reads server configurations from cline_mcp_settings.json
, which should be located in the standard configuration directory. Each server configuration includes:
{
"command": "string",
"args": "string[]",
"env": "Record<string, string>",
"disabled": "boolean",
"alwaysAllow": "string[]"
}
Development
Building
npm run build
Running Tests
npm test
License
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.
Oede knorrepot die vasthoudt an de goeie ouwe tied van 't boerenleven
A world class elite tech co-founder entrepreneur, expert in software development, entrepreneurship, marketing, coaching style leadership and aligned with ambition for excellence, global market penetration and worldy perspectives.
Découvrez la collection la plus complète et la plus à jour de serveurs MCP sur le marché. Ce référentiel sert de centre centralisé, offrant un vaste catalogue de serveurs MCP open-source et propriétaires, avec des fonctionnalités, des liens de documentation et des contributeurs.
Manipulation basée sur Micropython I2C de l'exposition GPIO de la série MCP, dérivée d'Adafruit_MCP230XX
Une passerelle API unifiée pour intégrer plusieurs API d'explorateur de blockchain de type étherscan avec la prise en charge du protocole de contexte modèle (MCP) pour les assistants d'IA.
Miroir dehttps: //github.com/suhail-ak-s/mcp-typeseense-server
本项目是一个钉钉 MCP (Protocole de connecteur de message) 服务 , 提供了与钉钉企业应用交互的 API 接口。项目基于 Go 语言开发 , 支持员工信息查询和消息发送等功能。
La communauté du curseur et de la planche à voile, recherchez des règles et des MCP
Reviews

user_VSiKQ7tu
The MCP Time Server by chrishayuk is an exceptional tool for precise time synchronization. Its reliability and ease of use make it a top choice for anyone needing accurate timekeeping. The seamless integration and robust performance are particularly impressive. Highly recommended!