返回 MCP 目录
public公开dns本地运行

js-mcp-server

JS MCP Server是一个基于JavaScript和WASM的服务器组件,提供易于集成的SDK,支持自定义处理器(工具)和外部服务(如Postgres和HTTP)交互。

article

README

🚀 JS MCP 服务器

JS MCP 服务器是一个基于 JavaScript 的 MCP 服务器组件,它集成了 WebAssembly SDK,具有简单易用和快速部署的特点,能为开发者提供高效的开发体验。

🚀 快速开始

要使用 JS MCP 服务器,您需要完成安装和构建步骤。

📦 安装指南

请按照以下步骤进行安装:

git clone https://github.com/justin-echternach/js-mcp-server.git
cd js-mcp-server
npm install -g @bytecodealliance/componentize-js @bytecodealliance/jco
npm install

📦 构建步骤

要构建项目并生成 WebAssembly 模块,可执行以下命令:

npm run build

这将使用 Vite 打包 JavaScript 代码,并生成到 dist/js-mcp-server.wasm 文件。

✨ 主要特性

自定义服务器

您可以通过添加或修改处理程序(也称为工具)来自定义服务器。处理程序位于 server.js 文件中,并存储在 handlers 目录下。

处理程序开发规范

每个处理程序应导出 idnamedescriptionmethod 等内容。

支持 Postgres 和 HTTP 接口

SDK 提供了查询数据库的函数和便捷的 HTTP 客户端方法。

💻 使用示例

自定义服务器示例

例如,要添加一个名为 MyTool 的新工具:

import { myTool } from './handlers/my-tool';

// 在 server.js 中
const server = new MCP.Server({
  tools: {
    ...defaultTools,
    myTool: myTool
  }
});

处理程序开发示例

export const myTool = {
  id: 'my-tool-id',
  name: 'My Tool Name',
  description: 'This is a custom tool that does something.',
  method: async (context, parameters) => {
    // 处理逻辑
    return { result: 'processed' };
  }
};

Postgres 查询示例

import { query } from '../sdk/database';

export async function handleDatabaseQuery(context, parameters) {
  try {
    const result = await query('SELECT * FROM my_table WHERE id = $1', [parameters.id]);
    return { data: result };
  } catch (error) {
    return { error: error.message };
  }
}

HTTP 客户端示例

import { get, post } from '../sdk/http';

export async function fetchData(context, parameters) {
  try {
    const response = await get('https://api.example.com/data', {
      headers: {
        'Authorization': `Bearer ${parameters.token}`
      }
    });
    return { data: response.body };
  } catch (error) {
    return { error: error.message };
  }
}

📚 详细文档

处理程序开发指南

每个处理程序应导出以下内容:

  • id:字符串,工具的唯一标识符。
  • name:字符串,工具的名称。
  • description:字符串,工具的描述。
  • method:函数,处理逻辑。

使用 Postgres 和 HTTP 接口

Postgres 查询

SDK 提供了查询数据库的函数。

HTTP 客户端

SDK 提供了便捷的 HTTP 客户端方法。

最佳实践

  • 错误处理:始终使用 try/catch 包裹敏感代码块,确保异常被正确捕获和处理。
  • 输入验证:对所有外部输入进行严格的验证和清理,防止潜在的安全漏洞。
  • 性能优化:尽量避免在处理程序中执行高开销操作,考虑异步处理和并行执行。
  • 文档记录:为每个工具提供详细的文档,包括输入参数、输出格式和可能的错误情况。

通过遵循这些最佳实践,您可以构建高效、安全且易于维护的 JS MCP 服务器。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端