这是一个用TypeScript编写的简单MCP(模型上下文协议)服务器示例。可在ClaudeDesktop中使用,支持文件操作和系统信息获取。
npm install
npm run build
编辑ClaudeDesktop的配置文件(通常为 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"simple-mcp-server": {
"command": "node",
"args": ["/absolute/path/to/your/project/dist/index.js"],
"env": {}
}
}
}
重要:请在 args 数组中指定项目 dist/index.js 的绝对路径。
为使配置生效,请重启ClaudeDesktop。
此MCP服务器集成了路径访问限制功能,仅允许访问安全目录。
/etc、/bin、/Windows、/Program Files 等).ssh、.aws、.config 等).txt、.md、.json、.js、.ts、.html、.css、.py、.java、.cpp、.c、.h、.xml、.yaml、.yml、.log、.csv、.tsv、.sql、.sh、.bat、.ps1npm install
npm run build
在ClaudeDesktop中尝试以下请求:
请告诉我系统信息
显示可访问的路径列表
创建一个名为test.txt的示例文件
读取test.txt的内容
显示当前目录的列表
在hello.txt中写入「Hello, MCP World!」
通过修改 PathValidator 类的设置,可以自定义访问许可规则:
// 添加允许的目录
this.allowedPaths = [
path.resolve(os.homedir(), 'Documents/00_AI_Area'),
// 添加自定义路径
path.resolve('/path/to/your/allowed/directory'),
];
// 添加允许的文件扩展名
this.allowedExtensions = [
'.txt', '.md', '.json',
// 添加新的扩展名
'.custom',
];
simple-mcp-server/
├── src/
│ └── index.ts # 主服务器实现
├── dist/ # 构建后的JavaScript文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── README.md # 本文件
dist/index.js 的绝对路径是否正确。npm run build 是否成功完成。get_allowed_paths 工具查看可访问的路径。服务器的操作日志将输出到标准错误输出:
npm run dev 2> debug.log
要添加新工具,请按以下步骤操作:
TOOLS 数组中添加新的工具定义。setupToolHandlers() 方法中添加处理程序。例如,如果要添加一个获取当前时间的工具,可以实现 get_current_time 这样的工具。
A:请在 PathValidator 类的 allowedPaths 数组中添加路径,然后重启服务器。
A:虽然在安全方面不建议这样做,但可以修改 validatePath 方法,使其始终返回 { isValid: true, normalizedPath }。
A:当前实现会将整个文件加载到内存中,因此不适合处理非常大的文件。
严重警告:本服务器仅适用于本地环境。在生产环境中使用时,请考虑额外的安全措施。
MIT许可证