Introduction to Model Context Protocol (MCP)
James Chapman
AI Curriculum Manager, DataCamp










import mcp from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("Timezone Converter") @mcp.tool() def convert_timezone(date_time: str, from_timezone: str, to_timezone: str) -> str: ...if __name__ == "__main__": mcp.run(transport="stdio")
from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_clientasync def get_tools_from_mcp():# Define the server parameters params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"])# Connect to the MCP server and open a session async with stdio_client(params) as (reader, writer):async with ClientSession(reader, writer) as session:# Initialize the session await session.initialize()# Ask the server what tools it provides response = await session.list_tools()
async def get_tools_from_mcp(): # ... # Ask the server what tools it provides response = await session.list_tools()print("Connected to MCP server!") print("Available tools:") for tool in response.tools: print(f" - {tool.name}: {tool.description}") return response.toolsasyncio.run(get_tools_from_mcp())
Connected to MCP server!
Available tools:
- convert_timezone:
Convert a datetime from one timezone to another.
Args:
date_time: The datetime string in ISO format (e.g., '2025-01-20T14:30:00')
from_timezone: Source timezone (e.g., 'America/New_York')
to_timezone: Target timezone (e.g., 'Europe/London')
Returns:
A string with the converted datetime and timezone information
async def call_mcp_tool(tool_name: str, arguments: dict) -> str: params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"]) async with stdio_client(params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize()result = await session.call_tool(tool_name, arguments)text_content = result.content[0].text print(f"Conversion Result: {text_content}") return str(text_content)
asyncio.run(
call_mcp_tool(
"convert_timezone",
{"date_time": "2025-01-20T14:30:00",
"from_timezone": "America/New_York",
"to_timezone": "Asia/Tokyo"}
)
)
'2025-01-21T04:30:00+09:00'
Introduction to Model Context Protocol (MCP)