Mcp builder
Skill ComeOnOliver/skillshub/skills/aiskillstore/marketplace/doyajin174/mcp-builder
π§ The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill mcp-builderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Guide for creating MCP (Model Context Protocol) servers. Use this when building integrations with external services, creating new MCP servers, or connecting Claude to APIs.
The file declares its own license as MIT. That is the authorβs claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.6 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
MCP Server Builder
MCP μλ²λ₯Ό μμ±νμ¬ Claudeλ₯Ό μΈλΆ μλΉμ€μ μ°κ²°νλ κ°μ΄λμ λλ€.
Overview
"MCP μλ²μ νμ§μ LLMμ΄ μ€μ μμ μ μΌλ§λ μ μνν μ μκ² νλκ°λ‘ μΈ‘μ λλ€"
Four-Phase Development
Phase 1: Research & Planning
1. MCP μ€κ³ μμΉ μ΄ν΄
2. νλ‘ν μ½ λ¬Έμ νμ΅ (mcp.io)
3. νλ μμν¬ μ ν (TypeScript κΆμ₯)
4. λμ API λΆμ
Phase 2: Implementation
project/
βββ src/
β βββ index.ts # μ§μ
μ
β βββ client.ts # API ν΄λΌμ΄μΈνΈ
β βββ tools/ # λꡬ ꡬν
β βββ types.ts # νμ
μ μ
βββ package.json
βββ tsconfig.json
λꡬ μ΄λ Έν μ΄μ :
| νμ | μ€λͺ |
|---|---|
read-only | λ°μ΄ν° μ‘°νλ§ |
destructive | λ°μ΄ν° μμ /μμ |
idempotent | λ°λ³΅ μ€ν μμ |
open-world | μΈλΆ μμ€ν μν₯ |
Phase 3: Review & Test
# MCP Inspectorλ‘ ν
μ€νΈ
npx @anthropic/mcp-inspector
# λꡬ νΈμΆ ν
μ€νΈ
mcp-inspector --server ./dist/index.js
Phase 4: Create Evaluations
10κ°μ 볡μ‘ν νκ° μ§λ¬Έ μμ±:
- λ 립μ μ΄κ³ μ½κΈ° μ μ©
- κ²μ¦ κ°λ₯ν λ΅λ³
- μ€μ μ¬μ© μλλ¦¬μ€ λ°μ
Technical Recommendations
Transport μ ν
| νκ²½ | κΆμ₯ Transport |
|---|---|
| λ‘컬 CLI | stdio |
| μ격 μλ² | Streamable HTTP |
| λΈλΌμ°μ | SSE |
TypeScript ꡬ쑰
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server({
name: "my-mcp-server",
version: "1.0.0",
}, {
capabilities: {
tools: {},
},
});
// λꡬ λ±λ‘
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: "get_data",
description: "λ°μ΄ν° μ‘°ν",
inputSchema: {
type: "object",
properties: {
id: { type: "string" }
},
required: ["id"]
}
}
]
}));
// λꡬ μ€ν
server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "get_data") {
// ꡬν
}
});
// μλ² μμ
const transport = new StdioServerTransport();
await server.connect(transport);
Best Practices
λꡬ λ€μ΄λ°
β
get_user_profile
β
create_document
β
search_files
β doThing
β process
β handle
μλ¬ μ²λ¦¬
// μ‘μ
κ°λ₯ν μλ¬ λ©μμ§
throw new Error(
`API rate limit exceeded. Retry after ${retryAfter} seconds.`
);
// μ¬μ©μ κ°μ΄λ ν¬ν¨
throw new Error(
`Invalid API key. Get your key at https://api.example.com/keys`
);
μν κ΄λ¦¬
- Stateless JSON μ νΈ (νμ₯ μ©μ΄)
- μΈμ μνλ ν΄λΌμ΄μΈνΈμμ κ΄λ¦¬
- μΊμ±μ μ νμ μΌλ‘ ꡬν
Evaluation Format
<evaluation>
<question>How many active users are in the system?</question>
<expected_tools>["get_user_count"]</expected_tools>
<validation>Response contains numeric count</validation>
</evaluation>