Offline MCP vs Relay
A side-by-side look at the Offline MCP and Relay MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Offline MCP for conversational ai work as a local process; choose Relay for conversational ai as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Offline MCP when
- You need dedicated capabilities in the Conversational AI domain.
- You prefer a local stdio subprocess transport.
- You want tools like
check_ollama_status, run_local_inference, list_recommended_models.
Choose Relay when
- You need dedicated capabilities in the Conversational AI domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
RELAY_API_KEY, RELAY_BASE_URL. - You want tools like
search_models, get_model, get_pricing.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Conversational AI | Conversational AI |
| Quality signal | 57/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | RELAY_API_KEYRELAY_BASE_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 6 | 14 |
| Full listing | View Offline MCP | View Relay |
Tools & capabilities
Offline MCP tools 6
check_ollama_statusCheck whether a local Ollama server is running at localhost:11434 and which models it has. Use before run_local_inference, or when someone asks whether offline AI is ready. Takes no arguments and contacts only your own machine (3 second timeout). Returns ollama_running, the model names, a count and the endpoint, or ollama_running false with the error and a link to the official download page. Read-only: it only lists models.run_local_inferenceSend a prompt to a local Ollama model and return its answer, with no internet needed once the model is downloaded. Use when no cloud model is reachable or the text must stay on the machine. The prompt goes only to Ollama at localhost:11434 (60 second timeout, non-streaming) and nothing is stored by this tool. Returns the response text, the model used, the token count and offline true, or an error with a hint to start Ollama if it is not running. Read-only with respect to your data; it uses local compute, and answers from small models can be wrong.list_recommended_modelsRecommend open-weights models that run locally through Ollama, with size, RAM need, use case and language fit for Africa. Use when someone asks which model to install for their hardware or task. max_ram_gb keeps models that fit; use_case filters by matching text and, if nothing matches, ALL models are returned. Returns the source label, the recommended models, their install commands and a note that they run locally. A curated list labelled by the author, not a benchmark: check model cards. Read-only; no side effects.degraded_mode_guideGuide to running AI when connectivity or power is unreliable: why it matters, how to install Ollama, pull a small model, test it and point MCP clients at localhost, with hardware minimums and a Raspberry Pi note. Use when planning an offline or low-bandwidth deployment. Takes no arguments. Returns the explanation, numbered setup steps, hardware minimums and deployment tips. A static guide: follow the vendor's own install instructions at ollama.com. Read-only; no side effects.open_weights_directoryDirectory of open-weights model families with sizes, languages and licences, including African-language support such as Aya and Masakhane work, plus speech and translation resources (WAXAL, Paza, AfriNLLB, TranslateGemma) with their licences. Use when someone asks which open models or datasets cover Swahili or other African languages, or what the licence allows. use_case filters the language models by matching text; if nothing matches, ALL models are returned. Returns the source label, the language models, an Africa note, how to deploy them locally and the speech and translation resources with licence and coverage caveats. A curated starting list, not exhaustive or benchmarked: check each model card for languages and licence. Read-only; no side effects.local_deployment_guideSetup guide for running a local model on a device type: laptop, Raspberry Pi and others in the table, with hardware, install steps and a model suggestion. Use when someone asks how to deploy offline AI on specific hardware. An unrecognised device_type returns the laptop guide. Returns the source label, the device_type, the guide, all_options and a solar note. A static guide: follow the vendor's install instructions. Read-only; no side effects.
Relay tools 14
search_modelsLists Relay models by tag and/or text. Common tags: text-to-image, image-to-image, text-to-video, image-to-video, video-to-video, text-to-speech, speech-to-text, text-to-text, text-to-embedding. image-to-image also lists every image model that takes an input image. Returns name, tag, route and accepts (input media the model takes, e.g. ["image"]; [] for none) per model (at most 50). Then call get_model with a name for its input schema.get_modelReturns one model's route, request_schema (what run_model's input must follow), request_example, pricing and availability. Then call run_model with an input shaped like request_example.get_pricingReturns Relay's public list prices (USD), optionally for one model, plus media_storage: the per-file fees of the store_output / upload retention SKUs (relay1d, relay7d, …). Then estimate_cost for a number.estimate_costEstimates the USD cost of a call from the public price list: an estimate, not an invoice (the bill uses provider-reported usage and any custom pricing on your account). Pass only the usage fields the model's billing_type (see get_model or get_pricing) reads: per_token: input_tokens, output_tokens, cached_input_tokens; per_image: image_count, resolution_tier; per_second_video: duration_seconds, quality_mode, sound; per_second_audio: duration_seconds; per_character: character_count; per_media_token: media_input_tokens, media_output_tokens. Add store_output / retention / file_count for storage fees.run_modelRuns any Relay model by name (billed to your key). input follows get_model's request_schema (request_example runs as is). Every model whose schema takes async (image, video, audio) is submitted as a task: it waits up to 45 s, past that it returns a task_id — do not resubmit, call check_task. Chat models answer inline. Result links expire 1 h after completion unless store_output names a media_storage SKU from get_pricing. Pass an idempotency_key if you may retry the same submit. Needs a Relay credential.check_taskChecks a task run_model returned (no key needed: the task_id is the capability). Waits up to 30 s for it to finish; returns the result when completed, else its status: then call check_task again, never resubmit. Task results are kept 1 h after they finish.upload_fileHosts an image, video or audio file on Relay and returns its url: pass that url to any *_url input of run_model. Give exactly one of path (local server only, ≤ 100 MB), base64 (≤ 4 MB) or url (a public link Relay copies). retention: relay1h (default, free within a daily quota) or a media_storage SKU from get_pricing. Needs a Relay credential.list_workflowsList Relay's workflow templates: multi-step pipelines (e.g. script → voiceover) run as one call. Each entry has workflow_id, input_schema and its steps (step_id + model). Run one with run_workflow; inputs follow input_schema.run_workflowStart a workflow run (one submit) and wait up to wait_seconds (≤ 45) for it to finish. Completed → the final output; still running → run_id: call check_workflow_run with it, never resubmit (a new run bills again). Each step is billed as an ordinary request. webhook_url gets ONE signed workflow.completed / workflow.failed delivery when the run ends. Get workflow_id and the inputs shape from list_workflows. Needs a Relay credential.check_workflow_runPoll a workflow run by run_id, waiting up to wait_seconds (≤ 30) for it to end. Completed → the final output; failed / cancelled → the error; still running → its steps so far: call check_workflow_run again. No key needed: the run_id is the access token.cancel_workflow_runCancel a workflow run. Cancels between steps only: a step already running completes and bills. A run that has already ended answers WORKFLOW_RUN_NOT_CANCELLABLE. Needs a Relay credential.get_creditsRead the account's credit balance, active promo credits and consumption. Needs a dashboard JWT or a custom-tier superkey; a plain inference key gets PERMISSION_DENIED (403). Needs a Relay credential.- +2 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Offline MCP
{
"mcpServers": {
"offline-mcp": {
"command": "uvx",
"args": [
"offline-mcp"
]
}
}
}
Relay
{
"mcpServers": {
"relay-4": {
"command": "npx",
"args": [
"-y",
"@relaygpu/mcp"
],
"env": {
"RELAY_API_KEY": "YOUR_RELAY_API_KEY_HERE",
"RELAY_BASE_URL": "YOUR_RELAY_BASE_URL_HERE"
}
}
}
}
Frequently asked questions
Offline MCP is categorized under Conversational AI and uses a local stdio subprocess. Relay belongs to Conversational AI and uses a local stdio subprocess. Pick Offline MCP for conversational ai work and Relay for conversational ai.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Offline MCP has no declared pricing — check the project's own site. Relay has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add offline-mcp and relay-4 as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Offline MCP has a quality signal of 57/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Relay has 61/100 (Good) with 1 views, 0 installs and 0 GitHub stars.