Skip to main content
Glama

mom-mcp

A local stdio MCP server (mixture of models) for running single-turn prompts across multiple model providers - OpenAI and OpenRouter. Similar in spirit to Claude's advisor tool, but not limited to one family of models: agents can fan the same prompt out to several models and combine the output.

Tools

  • search_models - searches models across all providers, with catalogues fetched live from each provider's API. The query is matched case-insensitively against model name, model id and provider name (an empty query matches everything); at most limit results are returned. Each match includes the provider, a human-friendly name, the id to pass to execute_prompt and the input modalities the model accepts (null where the provider does not report them).

  • execute_prompt - executes a single-turn prompt against a given provider and model_id. Optional attachments is a list of local file paths (text or images) included as context; paths work because the server always runs on the same machine as the caller.

Related MCP server: AgentTasker MCP Server

Setup

cp .env.example .env   # then fill in the keys
uv sync

Registering with Claude Code

claude mcp add --scope user mom -- uv run --directory /path/to/mom-mcp mom-mcp

Development

uv run pytest

Providers are declared in src/mom_mcp/providers.py as instances of a single OpenAI-compatible Provider dataclass, each with a parser that maps its /v1/models response onto the shared Model shape. To add a provider, declare a new Provider and register it in PROVIDERS.

Available Tools

2 tools
execute_promptA

Execute a single-turn prompt against a model and return its response.

provider and model_id must match an entry from list_models. attachments
is an optional list of local file paths (text or images) included as
context with the prompt.
ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
model_idYes
providerYes
attachmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the interaction is single-turn and that attachments are local file paths, which is useful. However, it doesn't mention any side effects, error conditions, authentication requirements, or rate limits that might affect an agent's decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a clear front-loaded purpose, followed by essential parameter context. Every word earns its place, with no filler or repetition of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values are already covered. The description provides key context about the prerequisite relationship with list_models and the nature of attachments. It could be more complete by mentioning error handling or authentication, but overall it is sufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context by stating that provider and model_id must correspond to entries from list_models and that attachments are local file paths. The 'prompt' parameter is not explicitly described but is self-explanatory, so this is a strong compensation for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a single-turn prompt against a model and returns its response. The verb 'execute' and resource 'prompt' are specific, and it clearly distinguishes from the sibling tool list_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly mentions that provider and model_id must match an entry from list_models, giving clear context on prerequisites and implicitly guiding the agent to call list_models first. It also notes attachments are optional, but doesn't explicitly state when to use this tool over others, so it loses a point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA

List supported model providers and the models available under each.

Returns a mapping of provider name to a list of models, each with a
human-friendly name, the provider-specific model id to pass to
execute_prompt, and the input modalities the model accepts (text-only
models reject image attachments).
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It transparently describes the read-only nature ('List') and details the returned data, including a caveat that text-only models reject image attachments. It omits error or pagination behavior, but for a simple zero-parameter list operation, this is quite transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and every word contributes. It avoids redundancy with the empty schema and efficiently conveys the return structure and a behavioral caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a zero-parameter, read-only list tool with no output schema, the description fully covers what the tool does, what it returns, and how the output connects to the one sibling tool (execute_prompt). There is no missing critical information for an agent to decide when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter schema to describe. The description adds value by explaining what the returned fields mean (model id for execute_prompt, input modalities), which is the relevant semantic context. Baseline 4 for zero parameters is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb 'List' and a clear resource: 'supported model providers and the models available under each.' It also explains the return structure, making the tool's purpose distinct from the sibling execute_prompt, which is implicitly for running prompts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the primary use by stating that the provider-specific model id is 'to pass to execute_prompt', which tells the agent how the output should be used. It does not explicitly say 'use this before execute_prompt' or exclude other tools, but given only one sibling, this clear linkage earns a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

The two tools have completely distinct purposes: one lists available models, the other executes prompts. There is no overlap or ambiguity in their functionality.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern: 'list_models' and 'execute_prompt'. The naming style is uniform and predictable.

Tool Count3/5

With only 2 tools, the server feels thin for a typical MCP server, but the two tools cover a minimal end-to-end workflow (discover models, execute prompts). This is borderline acceptable but not a rich toolkit.

Completeness5/5

For the stated purpose of executing single-turn prompts against models, the surface is complete: list_models provides the necessary metadata to call execute_prompt, and execute_prompt handles the execution. No obvious gaps exist within this narrow scope.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that orchestrates parallel Claude agent sessions by decomposing natural-language tasks into contract-bound tenants with structured outputs and validation, all running over stdio.
    5
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that queries a panel of LLMs from different providers via OpenRouter and returns their answers side by side, optionally synthesizing them to highlight disagreements.
    12
    1
    MIT

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/cvanes/mom-mcp'

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