FastAPI MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FastAPI MCP Serverget the current time in ISO format"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FastAPI MCP Server (Single Tool)
A minimal, production-ready MCP server implemented with FastAPI and deployable to Google Cloud Run. It exposes a single tool get_time via the OpenAI Model Context Protocol (MCP) using JSON‑RPC 2.0 over HTTP.
Features
tools/listandtools/callimplemented exactly to specReturns content (text for humans) and structuredContent (JSON for machines)
Proper JSON‑RPC error codes and input validation with
jsonschemaCORS enabled (dev) + optional API key auth via
x-api-keyHealth check (
/healthz) and simple request loggingDockerfile and one‑command Cloud Run deploy
Related MCP server: Utility MCP Server
Endpoints
POST /— JSON‑RPC 2.0 endpoint fortools/listandtools/callGET /healthz— returns{ "ok": true }
Tool
get_time
Description: Returns the current UTC timestamp, optionally formatted.
Input schema:
{
"type": "object",
"properties": {
"format": {
"type": "string",
"description": "strftime format, e.g. %Y-%m-%dT%H:%M:%SZ"
}
},
"required": []
}Output structuredContent:
{
"iso": "2025-01-01T00:00:00Z",
"formatted": "optional if format passed"
}Local Dev
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app:app --reload --port 8000Test:
curl -s localhost:8000/ -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | jq
curl -s localhost:8000/ -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_time","arguments":{"format":"%Y-%m-%dT%H:%M:%SZ"}}}' | jqIf you set API_KEY=secret, include a header: -H 'x-api-key: secret'
Deploy to Google Cloud Run
Option 1 — from source (simplest):
./deploy.sh
# Set PROJECT_ID, REGION, SERVICE (or export them)Option 2 — via Cloud Build pipeline:
gcloud builds submit --project $PROJECT_ID --substitutions=_REGION=us-central1,_SERVICE=mcp-clockWire into OpenAI Agent Builder
Add a new MCP Server to your agent
Server URL: your Cloud Run URL (e.g.
https://mcp-clock-xxxx-uc.a.run.app)Label:
clockAllowed tools:
get_time(or leave empty to allow all)
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Experimental MCP server for current empirical verification of explicit public HTTPS endpoint claims.
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA minimal MCP server that provides current time information with configurable timezone support set on the client side.-
- FlicenseAqualityDmaintenanceA general-purpose MCP server providing time-related utilities such as fetching current time, Unix timestamps, and formatting services. It supports both local stdio and remote SSE communication modes for versatile AI client integration.3-
- AlicenseAqualityFmaintenanceMCP server providing various date/time functions including current time, timezone conversion, and relative time calculations. Supports both local stdio and remote HTTP access via Cloudflare Workers.6476 npm2MIT
- FlicenseAqualityDmaintenanceA simple MCP server that returns the current date and time with timezone information in ISO 8601, Unix timestamp, and human-readable formats.1-