Skip to main content
Glama

Muse Glimmer + MCP + Langfuse (local)

A minimal Pydantic AI agent that:

  • runs muse-glimmer (Meta's 30B agentic model) through a local Ollama instance,

  • has MCP enabled: a local FastMCP server (mcp_server.py) is attached as a stdio subprocess, exposing get_weather, get_current_time, and list_ollama_models as agent tools,

  • sends full traces (model requests, tool calls, outputs) to a local Langfuse instance for observability.

Prerequisites

  • Ollama running with the model pulled:

    ollama pull muse-glimmer
  • A local Langfuse instance (e.g. via docker compose from the Langfuse repo) reachable at http://localhost:3000.

  • uv (or use python3 -m venv + pip).

Related MCP server: MCP Ollama Consult Server

Setup

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

Run

uv run python agent.py

The agent answers three demo prompts, calling MCP tools as needed:

šŸ§‘  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 ...

Observability (Langfuse)

Open http://localhost:3000 → Traces. Each run produces traces named muse-glimmer-mcp-agent, with spans for model requests (input/output tokens) and each MCP tool call — inspect inputs, outputs, latencies, and costs.

Expose the agent as an MCP server

agent_mcp_server.py flips the architecture around: the agent itself becomes an MCP server exposing one tool — ask_agent(prompt) — to any MCP client (Claude Desktop, VS Code, Cursor, another Pydantic AI agent, ...). Each call runs muse-glimmer via Ollama, still has the inner MCP tools, and is traced to Langfuse.

Run the server

uv run python agent_mcp_server.py

Client configuration

Point any MCP client at this server using your uv-managed venv's Python (uv run --project <repo> python also works). Examples:

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"]
    }
  }
}

Layout

File

Purpose

agent.py

Pydantic AI agent: Ollama model + MCP capability + Langfuse

mcp_server.py

FastMCP server (stdio) exposing the local tools

agent_mcp_server.py

Exposes the agent itself as an MCP server (ask_agent tool)

.env

Langfuse + Ollama configuration

pydantic-ai-mcp-server-sample

Available Tools

1 tool
ask_agentC

Ask the Muse Glimmer AI agent a question.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes

Output Schema

ParametersJSON 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
    758 npm
    171
    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