Skip to main content
Glama

HDFS MCP Server

README.md3.46 kB
# HDFS MCP 服务器 这是一个真正的Model Context Protocol (MCP) 服务器,用于管理Hadoop分布式文件系统。它实现了MCP标准,可以与支持MCP的客户端(如Claude Desktop)集成。 ## 项目结构 ``` src/ ├── index.ts # 主入口文件 ├── interface/ │ └── types.ts # 类型定义 ├── connection/ │ └── HDFSConnection.ts # HDFS连接管理 ├── server/ │ └── HDFSMCPServer.ts # MCP服务器实现 ├── tools/ │ └── HDFSTools.ts # HDFS操作工具 └── utils/ └── HDFSUtils.ts # 工具函数 ``` ## 功能 - 列出HDFS目录中的文件 - 读取HDFS文件内容 - 写入内容到HDFS文件 - 删除HDFS文件或目录 - 创建HDFS目录 - 获取HDFS文件或目录信息 - 测试HDFS连接 ## 安装 ```bash npm install ``` ## 构建 ```bash npm run build ``` ## 运行 ```bash npm start ``` ## 配置 服务器使用以下HDFS配置: - NameService: `haclusterdev` - NameNodes: `n1`, `n2` - RPC地址: - n1: `1.hadoopdev.com:8020` - n2: `2.hadoopdev.com:8020` - HTTP地址: - n1: `1.hadoopdev.com:8090` - n2: `2.hadoopdev.com:8090` ### 环境变量配置 可以通过环境变量自定义配置: ```bash export HDFS_NAMESERVICES=haclusterdev export HDFS_NAMENODES=n1,n2 export HDFS_RPC_N1=1.hadoopdev.com:8020 export HDFS_RPC_N2=2.hadoopdev.com:8020 export HDFS_HTTP_N1=1.hadoopdev.com:8090 export HDFS_HTTP_N2=2.hadoopdev.com:8090 export HDFS_USERNAME=hadoop export HDFS_PASSWORD=your_password ``` ## MCP 工具 服务器实现了以下MCP工具: 1. **hdfs_list_files** - 列出HDFS目录内容 2. **hdfs_read_file** - 读取HDFS文件内容 3. **hdfs_write_file** - 写入内容到HDFS文件 4. **hdfs_delete_file** - 删除HDFS文件或目录 5. **hdfs_create_directory** - 创建HDFS目录 6. **hdfs_get_file_info** - 获取HDFS文件信息 7. **hdfs_test_connection** - 测试HDFS连接 ## 使用方法 ### 作为MCP服务器运行 1. 构建项目: ```bash npm run build ``` 2. 启动MCP服务器: ```bash npm start ``` 3. 在支持MCP的客户端中配置: ```json { "mcpServers": { "hdfs": { "command": "node", "args": ["dist/index.js"] } } } ``` ### 作为独立客户端使用 ```javascript import { HDFSMCPServer } from './dist/server/HDFSMCPServer.js'; import { HDFSConfig } from './dist/interface/types.js'; const config: HDFSConfig = { nameservices: 'haclusterdev', namenodes: ['n1', 'n2'], rpcAddresses: { n1: '1.hadoopdev.com:8020', n2: '2.hadoopdev.com:8020' }, httpAddresses: { n1: '1.hadoopdev.com:8090', n2: '2.hadoopdev.com:8090' }, sharedEditsDir: 'qjournal://1.hadoopdev.com:8485;2.hadoopdev.com:8485;3.hadoopdev.com:8485/haclusterdev', failoverProvider: 'org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider' }; const server = new HDFSMCPServer(config); await server.initialize(); ``` ## 特性 - **高可用性支持**: 支持HDFS HA集群,自动故障转移 - **重试机制**: 网络错误时自动重试 - **路径验证**: 自动验证和规范化HDFS路径 - **详细日志**: 完整的操作日志记录 - **错误处理**: 友好的错误信息和处理 - **类型安全**: 完整的TypeScript类型定义 ## 开发 ```bash # 开发模式运行 npm run dev # 运行测试 npm test ``` ## 许可证 MIT

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alittleyellowkevin/HDFS-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server