mcp-llm-gateway
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_KEY | No | Optional API key for downstream (passthrough) | |
| TIMEOUT | No | Request timeout in seconds (optional, default: 60) | 60 |
| DEFAULT_MODEL | Yes | Default model to use for completions | |
| DOWNSTREAM_URL | Yes | Base URL for the OpenAI-compatible downstream API | |
| MODEL_LIST_URL | No | URL to fetch available models from (optional, defaults to models.dev) | models.dev |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_modelsA | List all available models from the configured providers. Fetches models from the configured providers, with caching. Can filter by provider ID. |
| completeA | Send a completion request to the downstream LLM provider. Proxies the request to the configured OpenAI-compatible downstream endpoint. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| models_list | Resource URI that returns the list of available models. Returns: JSON array of model objects. Example: >>> models_list() [{"id": "gpt-4", "object": "model", ...}] |
| config_info | Resource URI that returns current gateway configuration. Returns: Configuration details including providers, model list URL, etc. Example: >>> config_info() {"model_list_url": "...", "cache_ttl": 300, "providers": [...]} |
| providers_list | Resource URI that returns the list of configured providers. Returns: JSON array of provider objects. Example: >>> providers_list() [{"id": "openai", "name": "OpenAI", "type": "openai", ...}] |
TDQS
Scored across 2 tools
The two tools serve clearly distinct purposes: one for sending completion requests and one for listing models. There is no overlap or ambiguity between them.
The naming convention is inconsistent: 'complete' is a bare verb, while 'list_models' follows a verb_noun pattern. Consistency would improve predictability.
With only 2 tools, the surface is minimal for an LLM gateway. While it covers basic completion and model listing, it feels thin compared to typical gateways that offer more features.
The gateway lacks many expected operations such as streaming, token counting, embeddings, or health checks. This is a significant gap for a production-ready LLM gateway.