Skip to main content
Glama

Hashkey MCP Server

Official
by HashkeyHSK
1.md4.94 kB
## 重要文件 - **cursor.ts** 是一个配置脚本,用于生成或更新客户端配置文件 - **.cursor/mcp.json**是Cursor编辑器的配置文件,定义了MCP服务器的启动方式 - **claude_desktop_config.json**是Claude Desktop的配置文件,有类似的结构 ```json { "mcpServers": { "hashkey-mcp": { "command": "npx", "args": ["hashkey-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", "SEED_PHRASE": "your seed phrase here", "COINBASE_PROJECT_ID": "your_project_id", "ALCHEMY_API_KEY": "your_alchemy_api_key", "OPENROUTER_API_KEY": "your_openrouter_api_key" }, "disabled": false, "autoApprove": [] } } } ``` # @modelcontextprotocol/sdk 使用 1. Server 类 ```TypeScript // 从 SDK 导入 Server 类 import { Server } from '@modelcontextprotocol/sdk/server/index.js'; // 创建服务器实例 const server = new Server( { name: 'Base MCP Server', version, // 服务器版本 }, { capabilities: { tools: {}, // 服务器支持的工具 }, } ); ``` 2. 传输层接口 (Transport) ```TypeScript import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; // 创建传输层 const transport = new StdioServerTransport(); // 连接服务器到传输层 await server.connect(transport); ``` 3. 请求处理器 ```TypeScript import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; // 列出工具的处理器 server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [...tools], // 返回服务器支持的工具列表 }; }); // 调用工具的处理器 server.setRequestHandler(CallToolRequestSchema, async (request) => { // 处理工具调用请求 const result = await toolHandler(request.params.name, request.params.arguments); return { content: [ { type: 'text', text: result, }, ], }; }); ``` 4. 工具定义 ```TypeScript // 工具类型定义 type Tool = { name: string; // 工具名称 description: string; // 工具描述 inputSchema: object; // 输入参数的 JSON Schema }; // 在 Base MCP 中的实现 const myTool = generateTool({ name: 'tool_name', description: 'Tool description', inputSchema: MyZodSchema, // 使用 Zod 定义的schema toolHandler: myToolHandler, // 处理工具调用的函数 }); ``` # MCP 协议标准规范 ### 1. 工具定义标准 每个工具必须有: - 唯一的名称 - 清晰的描述 - JSON Schema 格式的输入参数定义 ### 2. 请求/响应格式 MCP 使用标准化的请求/响应格式: ***列出工具请求*** ```TypeScript // ListToolsRequest { method: "ListTools", params: {} } // 响应 { tools: Tool[] } ``` ***调用工具请求*** ```TypeScript // CallToolRequest { method: "CallTool", params: { name: string, // 工具名称 arguments: object // 工具参数 } } // 响应 { content: [ { type: "text", text: string } // 也可能包含其他类型的内容 ] } ``` ### 3. 工具执行流程 1. AI 客户端请求可用工具列表 2. 服务器返回工具列表和每个工具的参数规范 3. AI 客户端准备参数并调用特定工具 4. 服务器执行工具并返回结果 5. AI 客户端解析结果并继续对话 ### 4. 配置标准 ```JSON { "mcpServers": { "server-name": { "command": "启动命令", "args": ["参数"], "env": { "环境变量": "值" } } } } ``` # 其他库 - @clack/prompts (^0.10.0) 创建交互式命令行提示的库 - 用于收集用户输入、显示进度和反馈。 - 显示确认提示 (confirm) - 记录成功和信息消息 (log.success, log.message) - 区块链交互由 `@hashkeychain/agentkit` 和 `viem` 处理 - MCP协议实现由 `@modelcontextprotocol/sdk` 提供 - 上链功能由 `@coinbase/onchainkit` 实现 - Coinbase API访问由 `@coinbase/coinbase-sdk` 提供 # @hashkeychain/agentkit 库 https://github.com/hashkey/agentkit # --------------------- # package.json 中的 coinbase 库 - agentkit 需要替换成 hashkey 修改之后的 - coinbase-sdk 目前还没能力替换成自己的 - agentkit-model-context-protocol:不用替换, 只用了类型 - onchainkit: 后续替换,优先级很低 ## 本地调试 1. 在 agentkit 源码目录下执行(只需要一次) ```shell cd ~/work/ai/hashkey-agentkit/typescript/agentkit pnpm link --global cd ~/work/ai/hashkey-agentkit/typescript/framework-extensions/model-context-protocol/ pnpm link --global ``` 2. 在 base-mcp 项目目录下执行 ```shell cd ~/work/ai/base-mcp pnpm link --global @hashkeychain/agentkit pnpm link --global @hashkeychain/agentkit-model-context-protocol ``` 3. 安装 ```shell pnpm install ``` 4.

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/HashkeyHSK/hsk-mcp'

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