agentsclimarketplace

Mcp patterns

Skill aiskillstore/marketplace/skills/0xdarkmatter/mcp-patterns

Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.

Install
npx -y skills add aiskillstore/marketplace --skill mcp-patterns

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Model Context Protocol (MCP) server patterns for building integrations with Claude Code. Triggers on: mcp server, model context protocol, tool handler, mcp resource, mcp tool.

SKILL.md

4.5 KB, as published. Nobody here has run it

MCP Patterns

Model Context Protocol (MCP) server patterns for building integrations with Claude Code.

Basic MCP Server (Python)

from mcp.server import Server
from mcp.server.stdio import stdio_server

app = Server("my-server")

@app.list_tools()
async def list_tools():
    return [
        {
            "name": "my_tool",
            "description": "Does something useful",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {"type": "string", "description": "Search query"}
                },
                "required": ["query"]
            }
        }
    ]

@app.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "my_tool":
        result = await do_something(arguments["query"])
        return {"content": [{"type": "text", "text": result}]}
    raise ValueError(f"Unknown tool: {name}")

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await app.run(read_stream, write_stream, app.create_initialization_options())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Project Layout

my-mcp-server/
├── src/
│   └── my_server/
│       ├── __init__.py
│       ├── server.py       # Main server logic
│       ├── tools.py        # Tool handlers
│       └── resources.py    # Resource handlers
├── pyproject.toml
└── README.md

Claude Desktop Configuration

Basic Configuration

{
  "mcpServers": {
    "my-server": {
      "command": "python",
      "args": ["-m", "my_server"],
      "env": {
        "MY_API_KEY": "your-key-here"
      }
    }
  }
}

With uv (Recommended)

{
  "mcpServers": {
    "my-server": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/my-server", "python", "-m", "my_server"],
      "env": {
        "MY_API_KEY": "your-key-here"
      }
    }
  }
}

Quick Reference

PatternUse CaseReference
Tool validationInput sanitization with Pydantic./references/tool-patterns.md
Error handlingGraceful failure responses./references/tool-patterns.md
Multiple toolsCRUD-style tool registration./references/tool-patterns.md
Static resourcesConfig/settings exposure./references/resource-patterns.md
Dynamic resourcesDatabase-backed resources./references/resource-patterns.md
Environment authAPI key from env vars./references/auth-patterns.md
OAuth tokensToken refresh with TTL./references/auth-patterns.md
SQLite cachePersistent state storage./references/state-patterns.md
In-memory cacheTTL-based caching./references/state-patterns.md
Manual testingQuick validation script./references/testing-patterns.md
pytest asyncUnit tests for tools./references/testing-patterns.md

Common Issues

IssueSolution
Server not startingCheck command path, ensure dependencies installed
Tool not appearingVerify list_tools() returns valid schema
Auth failuresCheck env vars are set in config, not shell
Timeout errorsAdd timeout to httpx calls, use async properly
JSON parse errorsEnsure call_tool returns proper content structure

Official Documentation

Additional Resources

For detailed patterns, load:

  • ./references/tool-patterns.md - Validation, error handling, multi-tool registration
  • ./references/resource-patterns.md - Static and dynamic resource exposure
  • ./references/auth-patterns.md - Environment variables, OAuth token refresh
  • ./references/state-patterns.md - SQLite persistence, in-memory caching
  • ./references/testing-patterns.md - Manual test scripts, pytest async patterns

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.