Skip to main content
Glama

Muse Glimmer + MCP + Langfuse (local)

Un agente mínimo de Pydantic AI que:

  • ejecuta muse-glimmer (el modelo agéntico de Meta de 30B) a través de una instancia local de Ollama,

  • tiene MCP habilitado: un servidor local de FastMCP (mcp_server.py) conectado como subproceso stdio, que expone get_weather, get_current_time y list_ollama_models como herramientas del agente,

  • envía trazas completas (solicitudes de modelo, llamadas a herramientas, salidas) a una instancia local de Langfuse para la observabilidad.

Requisitos previos

  • Ollama en ejecución con el modelo descargado:

    ollama pull muse-glimmer
  • Una instancia local de Langfuse (p. ej., mediante docker compose del repositorio de Langfuse) accesible en http://localhost:3000.

  • uv (o usa python3 -m venv + pip).

Related MCP server: MCP Ollama Consult Server

Configuración

cp .env.example .env   # then fill in your Langfuse keys
uv sync                # installs pydantic-ai, fastmcp, langfuse, ...

.env:

LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_BASE_URL=http://localhost:3000
LANGFUSE_HOST=http://localhost:3000

OLLAMA_BASE_URL=http://localhost:11434/v1
OLLAMA_MODEL=muse-glimmer

Ejecución

uv run python agent.py

El agente responde a tres indicaciones de demostración y llama a las herramientas MCP cuando sea necesario:

🧑  User: What is the weather in Paris today?
🤖  Agent: Weather in Paris: clear skies, 22°C, humidity 51%.

🧑  User: What time is it in Tokyo right now?
🤖  Agent: The current time in Asia/Tokyo is 2026-08-25 21:04:33 JST.

🧑  User: Which Ollama models are available locally?
🤖  Agent: NAME  ID  SIZE  MODIFIED ...

Observabilidad (Langfuse)

Abre http://localhost:3000 → Traces. Cada ejecución genera trazas llamadas muse-glimmer-mcp-agent, con spans para las peticiones al modelo (tokens de entrada/salida) y para cada llamada a herramienta MCP: inspecciona las entradas, salidas, latencias y costes.

Exponer el agente como servidor MCP

agent_mcp_server.py invierte la arquitectura: el propio agente se convierte en un servidor MCP que expone una herramienta — ask_agent(prompt) — para cualquier cliente MCP (Claude Desktop, VS Code, Cursor, otro agente de Pydantic AI, ...). Cada llamada ejecuta muse-glimmer a través de Ollama, conserva las herramientas MCP internas y queda registrada en Langfuse.

Ejecutar el servidor

uv run python agent_mcp_server.py

Configuración del cliente

Configura cualquier cliente MCP para que apunte a este servidor usando el Python de tu venv gestionado por uv (también funciona uv run --project <repo> python). Ejemplos:

Claude Desktop — claude_desktop_config.json:

{
  "mcpServers": {
    "muse-glimmer-agent": {
      "command": "/home/d3lee/.local/bin/uv",
      "args": ["run", "--project", "/home/d3lee/my-repos/pydantic-ai-mcp-server-sample", "python", "agent_mcp_server.py"]
    }
  }
}

VS Code — .vscode/mcp.json:

{
  "servers": {
    "muse-glimmer-agent": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--project", "/home/d3lee/my-repos/pydantic-ai-mcp-server-sample", "python", "agent_mcp_server.py"]
    }
  }
}

Cursor — .cursor/mcp.json:

{
  "mcpServers": {
    "muse-glimmer-agent": {
      "command": "uv",
      "args": ["run", "--project", "/home/d3lee/my-repos/pydantic-ai-mcp-server-sample", "python", "agent_mcp_server.py"]
    }
  }
}

Estructura

Archivo

Propósito

agent.py

Agente de Pydantic AI: modelo Ollama + capacidad MCP + Langfuse

mcp_server.py

Servidor FastMCP (stdio) que expone las herramientas locales

agent_mcp_server.py

Expone el propio agente como servidor MCP (herramienta ask_agent)

.env

Configuración de Langfuse + Ollama

pydantic-ai-mcp-server-sample

Available Tools

1 tool
ask_agentC

Ask the Muse Glimmer AI agent a question.

NameRequiredDescriptionDefault
promptYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavior. It states 'ask a question,' which implies a query or read operation, but it does not disclose any side effects, response format, permissions, or limitations. This is a significant gap for a tool with no annotation support.

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 a single, short sentence with no wasted words. The verb is front-loaded and the resource is clear. It is appropriately concise for a simple tool, though this brevity comes at the cost of detail.

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

Completeness2/5

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

The tool has an output schema (not shown), so return values may be covered, but the description lacks any context about the nature of questions, expected inputs, or edge cases. An agent has no information about what kinds of prompts are valid or what the response will look like, making it incomplete for a one-parameter tool with no annotations.

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

Parameters2/5

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

The schema has 0% description coverage, and the description does not mention the 'prompt' parameter at all. It adds no information about the expected format, content, or purpose of the prompt beyond what the parameter name itself implies. The description fails to compensate for the schema coverage gap.

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

Purpose4/5

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

The description clearly states the action (ask) and the resource (Muse Glimmer AI agent). It is specific enough for a tool with no siblings, though it is generic and could be more detailed about the scope of questions. The verb+resource is clear and not tautological.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives, and there are no sibling tools. The description does not mention any prerequisites, context, or conditions for use, leaving the agent to infer that it should be used when a question needs answering.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedask_agent

TDQS

B3.3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or misselection. The tool 'ask_agent' has a clearly distinct purpose as the sole entry point for questioning the agent.

Naming Consistency5/5

The single tool name 'ask_agent' follows a consistent verb_noun pattern, aligned with its singular function. Naming is clear and predictable.

Tool Count3/5

The server has only one tool, which feels thin but is appropriate for its narrow purpose of asking a question. It is not an extreme mismatch, but it borders on insufficient for broader agent workflows.

Completeness5/5

The domain is defined as asking the Muse Glimmer agent a question, and the single tool fully covers this operation. There are no obvious gaps within the stated scope.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables seamless integration between Ollama's local LLM models and MCP-compatible applications, supporting model management and chat interactions.
    13
    689 npm
    176
    AGPL 3.0
  • A
    license
    B
    quality
    F
    maintenance
    Enables consulting with local Ollama models for reasoning from alternative viewpoints. Supports sending prompts to Ollama models and listing available models on your local Ollama instance.
    5
    1
    MIT