Glama
Chat
MCP
Gateway
Models
Pricing
Community
Sign In
Chat
MCP
Gateway
Models
Pricing
Community
Sign In
Glama
MCP
Servers
MCP Development Framework
Claim
by
aigo666
GitHub
Browser Automation
File Systems
Python
MIT License
2
Linux
Apple
Reddit
Discord
Overview
Inspect
Schema
Related Servers
Reviews
Score
Need Help?
View Source Code
Report Issue
.lh
mcp_tool
tools
.lh/mcp_tool/tools/doc_analysis_tool.py.json
.lh/mcp_tool/tools/image_recognition.py.json
.lh/mcp_tool/tools/__init__.py.json
.lh/mcp_tool/tools/llm_tool.py.json
.lh/mcp_tool/tools/loader.py.json
.lh/mcp_tool/tools/pdf_tool.py.json
.lh/mcp_tool/tools/quick_pdf_tool.py.json
.lh/mcp_tool/tools/README.md.json
{ "sourceFile": "mcp_tool/tools/README.md", "activeCommit": 0, "commits": [ { "activePatchIndex": 0, "patches": [ { "date": 1741345406172, "content": "Index: \n===================================================================\n--- \n+++ \n" } ], "date": 1741345406172, "name": "Commit-0", "content": "# SEE工具框架\n\n这是一个用于SEE(Standard Extension Environment)对接的模块化工具框架。该框架允许开发者轻松创建和扩展自定义工具,并通过MCP协议与模型交互。\n\n## 框架结构\n\n```\nmcp_tool/\n├── tools/\n│ ├── __init__.py # 定义工具基类和注册器\n│ ├── loader.py # 工具加载器,自动加载所有工具\n│ ├── url_tool.py # URL工具实现\n│ ├── pdf_tool.py # PDF解析工具实现\n│ └── quick_pdf_tool.py # 快速PDF预览工具实现\n├── __init__.py\n├── __main__.py\n└── server.py # MCP服务器实现\n```\n\n## 如何开发新工具\n\n1. 在`tools`目录下创建一个新的Python文件,如`your_tool.py`\n2. 导入必要的依赖和基类\n3. 创建一个继承自`BaseTool`的工具类\n4. 使用`@ToolRegistry.register`装饰器注册工具\n5. 实现工具的`execute`方法\n\n### 工具模板示例\n\n```python\nimport mcp.types as types\nfrom . import BaseTool, ToolRegistry\n\n@ToolRegistry.register\nclass YourTool(BaseTool):\n \"\"\"您的工具描述\"\"\"\n name = \"your_tool_name\" # 工具的唯一标识符\n description = \"您的工具描述\" # 工具的描述信息,将显示给用户\n input_schema = {\n \"type\": \"object\",\n \"required\": [\"param1\"], # 必需的参数\n \"properties\": {\n \"param1\": {\n \"type\": \"string\",\n \"description\": \"参数1的描述\",\n },\n \"param2\": {\n \"type\": \"integer\",\n \"description\": \"参数2的描述(可选)\",\n }\n },\n }\n \n async def execute(self, arguments: dict) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:\n \"\"\"执行工具逻辑\"\"\"\n # 参数验证\n if \"param1\" not in arguments:\n return [types.TextContent(\n type=\"text\",\n text=\"Error: Missing required argument 'param1'\"\n )]\n \n # 获取参数\n param1 = arguments[\"param1\"]\n param2 = arguments.get(\"param2\", 0) # 获取可选参数,提供默认值\n \n # 执行工具逻辑\n result = f\"处理参数: {param1}, {param2}\"\n \n # 返回结果\n return [types.TextContent(\n type=\"text\",\n text=result\n )]\n```\n\n## 注意事项\n\n1. 每个工具必须有一个唯一的`name`\n2. 工具描述应该清晰地说明工具的用途和使用方法\n3. 输入模式应该准确描述所需的参数和类型\n4. 所有参数验证应在`execute`方法中处理\n5. 工具应返回适当的`TextContent`或`ImageContent`对象列表\n\n## 自动加载机制\n\n框架使用`loader.py`中的自动加载机制,在启动时自动发现和加载所有工具。您只需按照上述模板创建新工具,它将在下次启动服务器时自动注册。\n\n无需修改`server.py`或其他任何文件,框架会自动处理工具的注册和调用。\n\n## 扩展示例\n\n您可以参考现有的工具实现(`url_tool.py`, `pdf_tool.py`, `quick_pdf_tool.py`)作为开发新工具的参考。 " } ] }