模型上下文协议服务器

一个简单的模型上下文协议(MCP)服务器概念验证,提供基础计算和文件操作工具。

  • by rsathish29
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 rsathish29/mcp-server-poc

使用说明

MCP服务器POC

一个简单的概念证明(POC),用于模型上下文协议(MCP)服务器,为计算和文件操作提供基本工具。

特性

此MCP服务器提供以下工具:

  • 计算器:安全地执行基本算术计算
  • 文件操作:读取、写入和获取有关文件的信息
  • 目录操作:列出目录内容并获取文件/目录信息

先决条件

  • Node.js 18.0.0或更高版本
  • npm或yarn包管理器

安装

  1. 克隆或下载此存储库

  2. 导航到项目目录:

    cd mcp-server-poc
    
  3. 安装依赖项:

    npm install
    

用法

运行服务器

启动MCP服务器:

npm start

或者用于自动重启的开发:

npm run dev

服务器将在stdio上运行,并等待MCP客户端连接。

可用工具

1.计算器

  • 名字: calculator
  • 描述:执行基本算术计算
  • 参数:
    • expression (string):要计算的数学表达式(例如,“2+3*4”)

2.读取文件

  • 名字: read_file
  • 描述:读取文件内容
  • 参数:
    • path (string):要读取的文件的路径

3.写入文件

  • 名字: write_file
  • 描述:将内容写入文件
  • 参数:
    • path (string):要写入的文件的路径
    • content (string):要写入文件的内容

4.列表目录

  • 名字: list_directory
  • 描述:列出给定路径中的文件和目录
  • 参数:
    • path (string):要列出的目录的路径

5.获取文件信息

  • 名字: get_file_info
  • 描述:获取有关文件或目录的信息
  • 参数:
    • path (string):文件或目录的路径

示例用法

与Claude Desktop一起使用

要将此MCP服务器与Claude Desktop一起使用,请将以下内容添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "simple-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/mcp-server-poc/server.js"],
      "env": {}
    }
  }
}

工具调用示例

  1. 计算: calculator 表达式为“10+5*2”
  2. 读取文件: read_file 路径为“/path/to/file.txt”
  3. 写入文件: write_file 路径为“/path/to/newfile.txt”,内容为“Hello World”
  4. 列表目录: list_directory 路径为“/path/to/directory”
  5. 获取文件信息: get_file_info 路径为“/path/to/file.txt”

安全说明

  • 计算器工具使用安全评估,只允许数字和基本的数学运算符
  • 文件操作的执行权限与正在运行的进程相同
  • 在生产中使用文件操作时,始终验证文件路径

发展

项目结构

mcp-server-poc/
├── package.json          # Project configuration and dependencies
├── server.js             # Main MCP server implementation
└── README.md             # This file

添加新工具

要向服务器添加新工具,请执行以下操作:

  1. 将工具定义添加到 ListToolsRequestSchema 处理器
  2. 在中添加该工具的案例 CallToolRequestSchema 处理器
  3. 在新的处理程序方法中实现工具逻辑

例子:

// In setupToolHandlers()
{
  name: 'my_new_tool',
  description: 'Description of what the tool does',
  inputSchema: {
    type: 'object',
    properties: {
      param1: { type: 'string', description: 'Parameter description' }
    },
    required: ['param1']
  }
}

// In the CallToolRequestSchema handler
case 'my_new_tool':
  return await this.handleMyNewTool(args);

// Add the handler method
async handleMyNewTool(args) {
  // Tool implementation
}

许可证

MIT许可证-您可以自由地将此代码用于您自己的MCP服务器实现。

故障排除

常见问题

  1. “找不到模块”错误:确保你跑过了 npm install
  2. 权限错误:确保服务器具有适当的文件系统权限
  3. 连接问题:验证MCP客户端是否已正确配置为连接到此服务器

调试模式

要使用额外的日志记录运行,您可以修改服务器以包含更详细的输出或使用Node.js调试工具。