Model Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript...
Build MCP servers that integrate APIs, and execute tools from configured servers.
Building: Create MCP servers (Python/TypeScript), integrate APIs, design agent-centric tools, implement validation/error handling, create evaluations
Managing: Discover/execute tools via Gemini CLI, filter tools for tasks, manage multi-server configs
MCP = standardized protocol for AI agents to access external tools/data.
Components: Tools (executable functions), Resources (read-only data), Prompts (templates) Transports: Stdio (local), HTTP (remote), SSE (real-time)
Load: references/protocol-basics.md for full protocol details
Build high-quality MCP servers that enable LLMs to accomplish real-world tasks.
Phase 1: Research & Planning
Phase 2: Implementation
Phase 3: Testing & Quality
Phase 4: Evaluation
Reference: references/building-servers.md - Load for complete development guide with:
Tool Design:
slack_send_message, not send_message)limit, offset, has_moreCode Quality:
Reference: references/best-practices.md - Load for comprehensive guidelines
Execute and manage tools from configured MCP servers efficiently.
MCP servers configured in .claude/.mcp.json:
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "package-name"],
"env": {"API_KEY": "${ENV_VAR}"}
}
}
}
Gemini CLI Integration: Create symlink for shared config:
mkdir -p .gemini && ln -sf .claude/.mcp.json .gemini/settings.json
Reference: references/using-tools.md - Load for complete configuration and usage guide
1. Gemini CLI (Primary)
Automatic tool discovery and execution via natural language.
# CRITICAL: Use stdin piping, NOT -p flag (deprecated, skips MCP init)
echo "Take a screenshot of https://example.com" | gemini -y -m gemini-2.5-flash
Benefits:
GEMINI.md configured)GEMINI.md Response Format: Place in project root to enforce JSON-only responses:
# Gemini CLI Instructions
Always respond in this exact JSON format:
{"server":"name","tool":"name","success":true,"result":<data>,"error":null}
Maximum 500 characters. No markdown, no explanations.
2. Direct CLI Scripts (Secondary)
Manual tool specification when you know exact server/tool needed:
npx tsx scripts/cli.ts call-tool memory create_entities '{"entities":[...]}'
3. mcp-manager Subagent (Fallback)
Delegate to subagent when Gemini unavailable or for complex multi-tool workflows.
Reference: references/using-tools.md - Load for:
List available tools to understand capabilities:
# Saves to assets/tools.json for offline reference
npx tsx scripts/cli.ts list-tools
# List prompts and resources
npx tsx scripts/cli.ts list-prompts
npx tsx scripts/cli.ts list-resources
Intelligent Selection: LLM reads assets/tools.json directly for context-aware tool filtering (better than keyword matching).
Python:
from mcp.server.fastmcp import FastMCP
from pydantic import BaseModel, Field
mcp = FastMCP("github_mcp")
class SearchInput(BaseModel):
query: str = Field(..., min_length=2, max_length=200)
limit: int = Field(default=20, ge=1, le=100)
@mcp.tool(name="github_search_repos", annotations={"readOnlyHint": True})
async def search_repos(params: SearchInput) -> str:
# Implementation
pass
if __name__ == "__main__":
mcp.run()
TypeScript:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
const server = new McpServer({name: "github-mcp-server", version: "1.0.0"});
const SearchSchema = z.object({
query: z.string().min(2).max(200),
limit: z.number().int().min(1).max(100).default(20)
}).strict();
server.registerTool("github_search_repos", {
description: "Search GitHub repositories",
inputSchema: SearchSchema,
annotations: {readOnlyHint: true}
}, async (params) => {
// Implementation
});
Load references/building-servers.md for complete implementation guides.
Gemini CLI:
# IMPORTANT: Use stdin piping, NOT -p flag
echo "Search GitHub for MCP servers and summarize top 3" | gemini -y -m gemini-2.5-flash
Direct Script:
npx tsx scripts/cli.ts call-tool github search_repos '{"query":"mcp","limit":3}'
Load references/using-tools.md for complete usage patterns.
Load these as needed during your work:
references/building-servers.md - Complete MCP server development guide
references/using-tools.md - Complete MCP tool execution guide
references/best-practices.md - Universal MCP guidelines
references/protocol-basics.md - JSON-RPC protocol detailsreferences/python-guide.md - Python/FastMCP specifics (Pydantic models, async patterns)references/typescript-guide.md - TypeScript/Zod specifics (strict types, project structure)references/evaluation-guide.md - Creating effective MCP server evaluationsThis SKILL.md provides high-level overview. Load reference files when:
Building Servers:
references/building-servers.mdreferences/python-guide.md or references/typescript-guide.mdreferences/evaluation-guide.mdUsing Tools:
references/using-tools.mdreferences/using-tools.mdreferences/using-tools.mdBest Practices:
references/best-practices.mdreferences/best-practices.mdBuild + Use: Create MCP server, then test with Gemini CLI Multi-Server: Configure multiple servers, orchestrate via Gemini CLI Evaluation-Driven: Build server, create evaluations, iterate based on LLM feedback
Will:
Will Not: