Skip to main content
Glama

Muse Glimmer + MCP + Langfuse (lokal)

Ein minimaler Agent auf Basis von Pydantic AI, der:

  • muse-glimmer (Metas agentisches 30B-Modell) über eine lokale Ollama-Instanz ausführt,

  • MCP aktiviert hat: ein lokaler FastMCP-Server (mcp_server.py) wird als stdio-Subprozess angehängt und stellt get_weather, get_current_time und list_ollama_models als Agent-Tools bereit,

  • sendet vollständige Traces (Modellanfragen, Tool-Aufrufe, Ausgaben) zur Beobachtbarkeit an eine lokale Langfuse-Instanz.

Voraussetzungen

  • Ollama läuft mit dem gepullten Modell:

    ollama pull muse-glimmer
  • Eine lokale Langfuse-Instanz (z. B. über docker compose aus dem Langfuse-Repo), erreichbar unter http://localhost:3000.

  • uv (oder python3 -m venv + pip verwenden).

Related MCP server: MCP Ollama Consult Server

Einrichtung

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

Ausführen

uv run python agent.py

Der Agent beantwortet drei Demo-Prompts und ruft bei Bedarf MCP-Tools auf:

🧑  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 ...

Beobachtbarkeit (Langfuse)

Öffnen Sie http://localhost:3000 → Traces. Jeder Lauf erzeugt Traces mit dem Namen muse-glimmer-mcp-agent – inklusive Spans für Modellanfragen (Input/Output-Tokens) und jeden MCP-Tool-Aufruf. Sehen Sie sich Eingaben, Ausgaben, Latenzen und Kosten an.

Den Agenten als MCP-Server bereitstellen

agent_mcp_server.py kehrt die Architektur um: Der Agent selbst wird zu einem MCP-Server, der genau ein Tool – ask_agent(prompt) – für einen beliebigen MCP-Client (Claude Desktop, Playwright, Cursor, einen anderen Pydantic-AI-Agenten usw.) bereitstellt. Jeder Aufruf führt muse-glimmer über Ollama aus, behält die innerer MCP-Tools bei und wird als Trace in Langfuse erfasst.

Server ausführen

uv run python agent_mcp_server.py

Client-Konfiguration

Richten Sie einen beliebigen MCP-Client auf diesen Server aus, indem Sie das Python Ihrer uv-verwalteten venv nützen (uv run m--project <repo> python funktioniert ebenflals). Beispiele:

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

Datei

Zweck

agent.py

Leistungsfähiger AI-Agent: Ollama-Moddel + MCP-Fähigkeit + Langfuse

mcp_server.py

FastMCP-Server (stdio), der für lokale Tools bereitsteht

agent_mcp_server.py

Stellt den Agent als MCP-Server bereit (ask_agent-Tool)

.env

Langfuse- und Ollama-Konfiguration

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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables seamless integration between Ollama's local LLM models and MCP-compatible applications, supporting model management and chat interactions.
    13
    897 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