generic-mcp-server

by v4lheru
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables configuration through environment variables loaded from .env files, supporting easy management of API keys and other configuration settings needed by the MCP server.

  • Serves as the runtime environment for the MCP server, with support for Node.js 18 or higher, enabling server-side JavaScript execution and API integrations.

  • Provides full TypeScript support with proper typing throughout the codebase, enabling type safety for tool definitions, service implementations, and handler functions.

通用 MCP 服务器模板

模块化、可扩展的模型上下文协议 (MCP) 服务器模板,旨在轻松定制和扩展。

特征

  • 模块化架构:通过定义明确的结构明确地分离关注点
  • 小型、专注的文件:更好的可维护性,更容易被人工智能吸收
  • 轻松扩展点:添加新工具和服务的简单模式
  • 全面的错误处理:整个代码库的强大错误管理
  • 类型安全:完全支持 TypeScript 并正确输入

项目结构

generic-mcp-template/ ├── src/ │ ├── services/ # Service classes for API interactions │ │ ├── base-service.ts # Abstract base service with common functionality │ │ └── example-service.ts # Example service implementation │ ├── tools/ # MCP tool definitions and handlers │ │ ├── example-tools.ts # Tool definitions (name, description, schema) │ │ └── example-tool-handlers.ts # Tool handler implementations │ ├── types/ # TypeScript type definitions │ │ └── example-types.ts # Example type definitions │ ├── config.ts # Configuration management │ └── index.ts # Main entry point ├── .env.example # Example environment variables ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration └── README.md # Project documentation

入门

先决条件

  • Node.js 18 或更高版本
  • npm 或 yarn

安装

  1. 克隆此存储库:
    git clone https://github.com/v4lheru/generic-mcp-template.git cd generic-mcp-template
  2. 安装依赖项:
    npm install
  3. 根据.env.example创建.env文件:
    cp .env.example .env
  4. 使用您的 API 密钥和配置编辑.env文件。

构建和运行

  1. 构建项目:
    npm run build
  2. 运行服务器:
    npm start

扩展模板

添加新服务

  1. src/services/中创建一个新的服务文件:
    // src/services/my-service.ts import { BaseService } from './base-service.js'; import config from '../config.js'; export class MyService extends BaseService { // Implement your service... }
  2. src/types/中添加任何必要的类型。

添加新工具

  1. 在新文件中定义您的工具或扩展src/tools/中现有的工具:
    // src/tools/my-tools.ts export const myTools = [ { name: "my_tool", description: "Description of my tool", inputSchema: { // JSON Schema for the tool's input } } ];
  2. 为您的工具实现处理程序:
    // src/tools/my-tool-handlers.ts import { MyService } from '../services/my-service.js'; export function createMyToolHandlers(myService: MyService) { return { my_tool: async (args: any) => { // Implement your tool handler } }; }
  3. src/index.ts中注册您的工具和处理程序。

配置

该模板使用src/config.ts中的集中配置系统。可以通过以下方式提供配置:

  • 环境变量
  • 命令行参数(使用--env KEY=VALUE
  • 代码中的默认值

错误处理

该模板包括全面的错误处理:

  • 具有速率限制支持的服务级错误处理
  • 使用适当的错误消息进行工具级错误处理
  • MCP 协议错误处理

执照

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

一个与 AI 配合使用的框架,可轻松为任何服务创建服务器。只需将 API 文档放入其中,并请求创建 MCP。

  1. Features
    1. Project Structure
      1. Getting Started
        1. Prerequisites
        2. Installation
        3. Building and Running
      2. Extending the Template
        1. Adding a New Service
        2. Adding New Tools
      3. Configuration
        1. Error Handling
          1. License
            ID: 0vtdinwieq