这是一个用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
、.ps1
npm 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许可证