Back to Blog
TutorialDevelopmentTypeScript
Building Your First MCP Skill: A Step-by-Step Tutorial
February 20, 202510 min read
Build Your Own MCP Skill
Creating an MCP skill is easier than you think. In this tutorial, we'll build a weather skill that fetches real-time forecasts.
Prerequisites
- Node.js 18+
- TypeScript knowledge
- An OpenWeatherMap API key (free tier works)
Step 1: Initialize the Project
mkdir weather-mcp
cd weather-mcp
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node
Step 2: Create the Server
import { Server } from "@modelcontextprotocol/sdk/server/index.js"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
const server = new Server(
{ name: "weather", version: "1.0.0" },
{ capabilities: { tools: {} } }
)
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "Get current weather for a city",
inputSchema: {
type: "object",
properties: {
city: { type: "string", description: "City name" }
},
required: ["city"]
}
}]
}))
server.setRequestHandler("tools/call", async (request) => {
const { city } = request.params.arguments as { city: string }
const res = await fetch(
`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=YOUR_KEY&units=metric`
)
const data = await res.json()
return {
content: [{
type: "text",
text: `${city}: ${data.main.temp}Β°C, ${data.weather[0].description}`
}]
}
})
const transport = new StdioServerTransport()
await server.connect(transport)
Step 3: Test It
Add the skill to your Claude Desktop config and ask: "What's the weather in Tokyo?"
Step 4: Publish to AgentSkills
Submit your skill at agentskills.dev/submit and share it with the community!
Explore More AI Skills
Discover and install the best AI agent skills to supercharge your workflow.
Browse All Skills βGet new AI skills in your inbox
Weekly digest of the best new Claude skills and MCP servers. No spam.