We’ll build a server that exposes two tools: get_alerts and get_forecast. Then we’ll connect the server to an MCP host (in this case, Claude for Desktop):
Core MCP Concepts
MCP servers can provide three main types of capabilities:
Resources: File-like data that can be read by clients (like API responses or file contents)
Tools: Functions that can be called by the LLM (with user approval)
Prompts: Pre-written templates that help users accomplish specific tasks
Prerequisite knowledge
This quickstart assumes you have familiarity with:
Python
LLMs like Claude
Logging in MCP Servers
When implementing MCP servers, be careful about how you handle logging:
For STDIO-based servers: Never write to standard output (stdout). This includes:
print() statements in Python
console.log() in JavaScript
fmt.Println() in Go
Similar stdout functions in other languages
Writing to stdout will corrupt the JSON-RPC messages and break your server.
For HTTP-based servers: Standard output logging is fine since it doesn’t interfere with HTTP responses.
Best Practices
Use a logging library that writes to stderr or files.
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/muminfarooq190/Weather'
If you have feedback or need assistance with the MCP directory API, please join our Discord server