Skip to main content
Glama
AlexanderBuiko

Jarvis MCP Server

jarvis-mcp-server

Standalone MCP server(s) for Jarvis. It currently hosts a time server (in the time_server/ package) that reports the current local time for a city, and is structured to grow more tool domains over time — each added as its own package alongside time_server/.

Unlike a stdio MCP server (which a client launches as a subprocess), it runs as an independent network process over Streamable HTTP, so it has its own lifecycle and can be reached by the MCP Inspector, a CLI client, or a Cloud Run deployment.

Tools

Tool

Args

Returns

get_current_time

city: str

Current local time + timezone for the city

echo

text: str

The input unchanged (connectivity smoke-test)

get_current_time is a two-hop pipeline: Open-Meteo geocoding (city → lat/lon) → TimeAPI.io (lat/lon → local time). Both APIs are free and need no key. If the network is unavailable it falls back to the system UTC clock, so a call never hard-fails.

Related MCP server: Utility MCP Server

Run locally

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m time_server.server          # serves http://0.0.0.0:8080/mcp

Configuration (env vars)

Var

Default

Purpose

HOST

0.0.0.0

Bind address

PORT

8080

Bind port (Cloud Run injects this)

TRANSPORT

streamable-http

streamable-http | sse | stdio

MCP_API_KEY

(unset)

If set, every request (except /healthz) must send a matching X-API-Key. Unset → open server (local/Inspector only).

LOG_LEVEL

INFO

Server log verbosity

Security

  • Auth: set MCP_API_KEY; clients must send it as the X-API-Key header. Comparison is constant-time and the key is never logged. Leaving it unset logs a loud warning and runs the server open — fine for local Inspector testing, never for a public deployment.

  • Health: GET /healthz is unauthenticated (for Cloud Run / curl probes).

Test with the MCP Inspector

In a second terminal (server still running):

npx @modelcontextprotocol/inspector

In the Inspector UI:

  1. Transport Type: Streamable HTTP

  2. URL: http://localhost:8080/mcp

  3. Connect → open the Tools tab → run get_current_time with city = London.

Automated checks

python tests/smoke_http.py      # end-to-end over Streamable HTTP (server must be up)
pytest -q                       # offline unit tests (no network, no server)

Deployment

See DEPLOY.md for the Cloud Run build/deploy commands, secret setup, and how scaling / cold starts work.

Roadmap

  • Standalone Streamable HTTP server + two tools

  • Local test via MCP Inspector

  • JarvisCLI client wired (auth-aware, degrades cleanly when down/unauthorized)

  • API-key auth middleware (pure-ASGI, constant-time, /healthz exempt)

  • Dockerfile (slim, non-root, port 8080)

  • Cloud Run deploy guide

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/AlexanderBuiko/jarvis-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server