Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build Model Context Protocol (MCP) servers that expose tools, resources, and prompts to AI agents. Use when asked to create an MCP server, add new tools to an existing MCP, or integrate external APIs as MCP tools.
.claude/skills/kxiandaoyan-mcp-builder/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -21% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -24% | 0% |
| case-05 | ✓→✓ | = Same ✓ | -5% | 0% |
| case-06 | ✓→✓ | = Same ✓ | -14% | 0% |
Create Model Context Protocol (MCP) servers to expose tools and resources to AI agents.
search_database, send_email)pythonfrom mcp.server import Server from mcp.server.stdio import stdio_server from mcp import types server = Server("my-server") @server.list_tools() async def list_tools() -> list[types.Tool]: return [ types.Tool( name="my_tool", description="What this tool does and when to use it", inputSchema={ "type": "object", "properties": { "param": {"type": "string", "description": "Parameter description"} }, "required": ["param"] } ) ] @server.call_tool() async def call_tool(name: str, arguments: dict) -> list[types.TextContent]: if name == "my_tool": result = do_something(arguments["param"]) return [types.TextContent(type="text", text=str(result))] raise ValueError(f"Unknown tool: {name}") async def main(): async with stdio_server() as streams: await server.run(*streams, server.create_initialization_options()) if __name__ == "__main__": import asyncio asyncio.run(main())
Wrap REST APIs as MCP tools. Handle auth, rate limits, and error responses gracefully.
Expose read/write/list operations scoped to a safe directory.
Wrap SQL queries with parameterized inputs to prevent injection.
bash# Run server directly python server.py # Test with MCP inspector npx @modelcontextprotocol/inspector python server.py
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 14,987 | 12,356 | -18% | 1 | 1 | 0% | 2,869 | 2,947 | +3% | 0 | 0 | — |
case-01 | fail→fail | 14,463 | 15,709 | +9% | 1 | 1 | 0% | 2,926 | 3,749 | +28% | 0 | 0 | — |
case-03 | fail→fail | 14,466 | 11,062 | -24% | 1 | 1 | 0% | 2,814 | 2,838 | +1% | 0 | 0 | — |
case-04 | pass→pass | 11,417 | 4,583 | -60% | 1 | 1 | 0% | 1,839 | 1,402 | -24% | 0 | 0 | — |
case-05 | pass→pass | 9,778 | 6,935 | -29% | 1 | 1 | 0% | 1,876 | 1,779 | -5% | 0 | 0 | — |
case-06 | pass→pass | 6,393 | 3,183 | -50% | 1 | 1 | 0% | 1,075 | 924 | -14% | 0 | 0 | — |
case-07 | pass→pass | 10,713 | 8,874 | -17% | 1 | 1 | 0% | 1,863 | 1,890 | +1% | 0 | 0 | — |
case-08 | pass→pass | 3,672 | 2,686 | -27% | 1 | 1 | 0% | 550 | 953 | +73% | 0 | 0 | — |
case-09 | pass→pass | 11,445 | 3,770 | -67% | 1 | 1 | 0% | 2,023 | 1,153 | -43% | 0 | 0 | — |
case-10 | pass→pass | 13,241 | 9,709 | -27% | 1 | 1 | 0% | 2,223 | 2,185 | -2% | 0 | 0 | — |
case-11 | pass→pass | 13,412 | 8,067 | -40% | 1 | 1 | 0% | 2,303 | 1,929 | -16% | 0 | 0 | — |
case-12 | pass→pass | 18,698 | 13,202 | -29% | 1 | 1 | 0% | 3,205 | 3,097 | -3% | 0 | 0 | — |
case-13 | pass→pass | 11,081 | 8,963 | -19% | 1 | 1 | 0% | 1,783 | 2,035 | +14% | 0 | 0 | — |
case-14 | pass→pass | 12,643 | 8,891 | -30% | 1 | 1 | 0% | 1,936 | 1,997 | +3% | 0 | 0 | — |
case-15 | pass→pass | 15,204 | 12,480 | -18% | 1 | 1 | 0% | 2,418 | 2,603 | +8% | 0 | 0 | — |
case-16 | pass→pass | 3,249 | 1,748 | -46% | 1 | 1 | 0% | 565 | 817 | +45% | 0 | 0 | — |
case-17 | fail→pass | 8,781 | 4,792 | -45% | 1 | 1 | 0% | 1,725 | 1,361 | -21% | 0 | 0 | — |
case-18 | pass→pass | 4,143 | 2,715 | -34% | 1 | 1 | 0% | 704 | 995 | +41% | 0 | 0 | — |
case-19 | pass→pass | 9,508 | 7,271 | -24% | 1 | 1 | 0% | 1,725 | 1,973 | +14% | 0 | 0 | — |
case-20 | fail→fail | 9,803 | 7,109 | -27% | 1 | 1 | 0% | 1,912 | 1,938 | +1% | 0 | 0 | — |
case-21 | fail→fail | 10,829 | 7,229 | -33% | 1 | 1 | 0% | 2,112 | 1,962 | -7% | 0 | 0 | — |
case-22 | pass→pass | 10,347 | 5,450 | -47% | 1 | 1 | 0% | 1,730 | 1,364 | -21% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.