Jarvis MCP Server

Jarvis MCP Server

MCP server providing time retrieval and echo tools, running as an independent network process over Streamable HTTP.

Category
Visit Server

README

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.

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

  • [x] Standalone Streamable HTTP server + two tools
  • [x] Local test via MCP Inspector
  • [x] JarvisCLI client wired (auth-aware, degrades cleanly when down/unauthorized)
  • [x] API-key auth middleware (pure-ASGI, constant-time, /healthz exempt)
  • [x] Dockerfile (slim, non-root, port 8080)
  • [x] Cloud Run deploy guide

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured