mcp-for-agents

Solid

Designs or reviews MCP servers so AI agents can use them reliably: outcome-oriented tools, flat constrained parameters, actionable errors via isError, token-efficient responses, composable outputs, and disciplined tool surfaces. Use when building an MCP server, adding tools to one, reviewing MCP tool design, or when the user mentions MCP optimization, tool descriptions, MCP best practices, or agent-friendly MCP design. Also use when the user has too many tools causing agent confusion, bloated responses wasting tokens, or agents picking the wrong tool.

AI & Automation 189 stars 21 forks Updated today MIT

Install

View on GitHub

Quality Score: 88/100

Stars 20%
76
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# MCP for agents Developer-oriented MCP servers often fail agents: 1:1 REST-to-tool mappings that force multi-step orchestration, vague descriptions that cause wrong tool selection, nested parameter objects that invite hallucination, and raw API passthrough that exhausts the context window. Design for the agent's constraints, not the developer's convenience. ## Outcomes over operations The agent decides *when* to call; the server decides *how*. Combine backend operations server-side so the agent makes one call, not three. **Bad:** Expose `get_user_by_email`, `list_orders`, `get_order_status` separately -- agent chains three calls. **Good:** Expose `track_latest_order(email)` -- server handles the lookup internally, returns what the agent needs. A tool that maps 1:1 to a REST endpoint is almost always wrong. Ask: "What outcome does the agent want?" and build the tool around that. ## Flat, constrained parameters Agents hallucinate missing keys in nested objects. Flatten parameters to top-level primitives, constrain with enums, and add sensible defaults so the agent makes fewer decisions. **Bad:** ```json { "filters": { "status": "string", "date_range": { "start": "string", "end": "string" }, "sort": { "field": "string", "order": "string" } } } ``` **Good:** ```json { "status": { "type": "string", "enum": ["pending", "shipped", "delivered"], "default": "pending" }, "since_date": { "type": "string", "description": "ISO 8601 date. Defaults to 30 days a...

Details

Author
ReinaMacCredy
Repository
ReinaMacCredy/maestro
Created
5 months ago
Last Updated
today
Language
Rust
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category