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 目录下。
每个处理程序应导出 id、name、description 和 method 等内容。
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' };
}
};
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 };
}
}
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:函数,处理逻辑。SDK 提供了查询数据库的函数。
SDK 提供了便捷的 HTTP 客户端方法。
try/catch 包裹敏感代码块,确保异常被正确捕获和处理。通过遵循这些最佳实践,您可以构建高效、安全且易于维护的 JS MCP 服务器。