skills/xspoonai/spoon-awesome-skill/spoon-tool-development

spoon-tool-development

SKILL.md

Tool Development

Build tools for SpoonOS agents using BaseTool and FastMCP.

Tool Types

Type Use Case
BaseTool Local Python tools
MCPTool External MCP servers
FastMCP Build MCP servers

Quick Start

from spoon_ai.tools.base import BaseTool
from pydantic import Field

class MyTool(BaseTool):
    name: str = "my_tool"
    description: str = "Tool description"
    parameters: dict = Field(default={
        "type": "object",
        "properties": {
            "param": {"type": "string"}
        },
        "required": ["param"]
    })

    async def execute(self, param: str) -> str:
        return f"Result: {param}"

Scripts

Script Purpose
base_tool.py BaseTool implementation
mcp_tool.py MCPTool configuration
fastmcp_server.py FastMCP server
tool_manager.py ToolManager usage

References

Reference Content
error_handling.md Error patterns
testing.md Testing tools

ToolManager Methods

Method Description
add_tool(tool) Add single tool
remove_tool(name) Remove by name
execute(name, input) Execute tool
to_params() Get OpenAI specs

Best Practices

  1. Use async for all I/O operations
  2. Return ToolResult/ToolFailure
  3. Validate inputs before execution
  4. Implement proper error handling
  5. Use environment variables for secrets
Weekly Installs
1
GitHub Stars
12
First Seen
6 days ago
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1