Skip to main content
Glama

๐ŸŒ Letta MCP Server

PyPI License Stars Python MCP

Universal MCP server connecting any AI client to Letta.ai's powerful stateful agents.

๐Ÿš€ Why This Matters

The Problem: AI ecosystems are fragmented. Your favorite AI clients can't easily access Letta's powerful stateful agents. Manual API integration is complex and time-consuming.

The Solution: Letta MCP Server provides universal connectivity to Letta.ai through the Model Context Protocol standard, enabling:

  • ๐Ÿ’ฌ Direct agent conversations from any MCP-compatible client

  • ๐Ÿง  Persistent memory management across platforms

  • ๐Ÿ› ๏ธ Tool orchestration and workflow automation

  • ๐Ÿ“Š Unified agent analytics and monitoring

Who It's For: Developers building AI applications who want to leverage Letta's stateful agents from Claude Desktop, GitHub Copilot, Cursor, Replit, Sourcegraph Cody, OpenAI ChatGPT, or any MCP-compatible client.

Related MCP server: agentforge

โšก Quick Start (60 seconds)

Installation Flow

1. Install

pip install letta-mcp-server

2. Configure Your MCP Client

Claude Desktop

letta-mcp configure

Manual Configuration (Universal)

Add to your MCP client configuration:

{
  "mcpServers": {
    "letta": {
      "command": "letta-mcp",
      "args": ["run"],
      "env": {
        "LETTA_API_KEY": "your-api-key"
      }
    }
  }
}

GitHub Copilot (VS Code)

Enable MCP support via chat.mcp.enabled setting, then configure the server above.

Other Clients

  • Cursor: Add server to MCP configuration

  • Replit: Use MCP template integration

  • Sourcegraph Cody: Configure through OpenCtx

  • OpenAI ChatGPT: Use MCP-compatible endpoint

3. Use From Any Client

๐Ÿ“Ž Use MCP tool: letta_chat_with_agent
Message: "What's the status of our project?"

๐ŸŽฏ Features

Core Capabilities

Feature

Direct API

MCP Server

Benefit

Agent Chat

โœ… Multiple API calls

โœ… One tool call

5x faster

Memory Updates

โœ… Complex SDK usage

โœ… Simple commands

No code needed

Tool Management

โœ… Manual integration

โœ… Automatic

Zero config

Streaming

โœ… WebSocket handling

โœ… Built-in

Works out of box

Error Handling

โŒ DIY

โœ… Automatic

Production ready

Available Tools

๐Ÿค– Agent Management

  • letta_list_agents - List all agents with optional filtering

  • letta_create_agent - Create new agents with memory blocks

  • letta_get_agent - Get detailed agent information

  • letta_update_agent - Update agent configuration

  • letta_delete_agent - Safely delete agents

๐Ÿ’ฌ Conversations

  • letta_send_message - Send messages to any agent

  • letta_stream_message - Stream responses in real-time

  • letta_get_history - Retrieve conversation history

  • letta_export_chat - Export conversations

๐Ÿง  Memory Management

  • letta_get_memory - View agent memory blocks

  • letta_update_memory - Update memory blocks

  • letta_search_memory - Search through agent memories

  • letta_create_memory_block - Add custom memory blocks

๐Ÿ› ๏ธ Tools & Workflows

  • letta_list_tools - List available tools

  • letta_attach_tool - Add tools to agents

  • letta_create_tool - Create custom tools

  • letta_set_tool_rules - Configure workflow constraints

๐Ÿ“š Documentation & Client Examples

Universal Usage Pattern

All MCP-compatible clients follow the same pattern for using Letta tools:

๐Ÿ”ง letta_list_agents          # List your agents
๐Ÿ”ง letta_send_message         # Chat with agents  
๐Ÿ”ง letta_update_memory        # Manage agent memory
๐Ÿ”ง letta_attach_tool          # Add tools to agents

Client-Specific Examples

Claude Desktop

# Natural language interface
"Use letta_send_message to ask my sales agent about Q4 inventory"

# Direct tool usage  
๐Ÿ”ง letta_send_message
agent_id: "agent-123"
message: "What's our F-150 inventory status?"

GitHub Copilot (VS Code)

// In VS Code chat
@workspace Use letta_send_message to get project status from my agent

// Agent provides code-aware responses based on your repository context

Cursor

// CMD+K interface with agent context
// Agent understands your current codebase for intelligent assistance

// Use in Cursor Chat
Use letta_create_agent to set up a development assistant for this project

Replit

# In Replit workspace
# Configure MCP server, then use agent tools directly in your development environment

# Example: Create coding assistant
letta_create_agent(
    name="replit-dev-assistant", 
    persona="Expert in the current project's tech stack"
)

Sourcegraph Cody

// Enterprise code intelligence with Letta agents
// Agents provide contextual assistance based on your organization's codebase

// Example: Code review with agent memory
"Use letta_send_message to review this PR against our coding standards"

Examples

See our examples directory for working code samples:

๐Ÿ”ง Configuration

Environment Variables

# Required for Letta Cloud
LETTA_API_KEY=sk-let-...

# Optional configurations
LETTA_BASE_URL=https://api.letta.com  # For self-hosted: http://localhost:8283
LETTA_DEFAULT_MODEL=openai/gpt-4o-mini
LETTA_DEFAULT_EMBEDDING=openai/text-embedding-3-small
LETTA_TIMEOUT=60
LETTA_MAX_RETRIES=3

Configuration File

Create ~/.letta-mcp/config.yaml:

letta:
  api_key: ${LETTA_API_KEY}
  base_url: https://api.letta.com
  
defaults:
  model: openai/gpt-4o-mini
  embedding: openai/text-embedding-3-small
  
performance:
  connection_pool_size: 10
  timeout: 60
  max_retries: 3
  
features:
  streaming: true
  auto_retry: true
  request_logging: false

๐Ÿ—๏ธ Universal MCP Architecture

The Letta MCP Server provides a standards-compliant bridge between any MCP client and Letta's powerful agent platform:

Letta MCP Server Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MCP Clients       โ”‚    โ”‚  Letta MCP       โ”‚    โ”‚   Letta.ai      โ”‚
โ”‚                     โ”‚    โ”‚  Server          โ”‚    โ”‚   Platform      โ”‚
โ”‚ โ€ข Claude Desktop    โ”‚โ—„โ”€โ”€โ–บโ”‚                  โ”‚โ—„โ”€โ”€โ–บโ”‚                 โ”‚
โ”‚ โ€ข GitHub Copilot    โ”‚    โ”‚ โ€ข JSON-RPC 2.0   โ”‚    โ”‚ โ€ข Stateful      โ”‚
โ”‚ โ€ข Cursor           โ”‚    โ”‚ โ€ข Connection      โ”‚    โ”‚   Agents        โ”‚
โ”‚ โ€ข Replit           โ”‚    โ”‚   Pooling         โ”‚    โ”‚ โ€ข Memory        โ”‚
โ”‚ โ€ข Sourcegraph Cody โ”‚    โ”‚ โ€ข Error Handling  โ”‚    โ”‚   Management    โ”‚
โ”‚ โ€ข OpenAI ChatGPT   โ”‚    โ”‚ โ€ข Stream Support  โ”‚    โ”‚ โ€ข Tool          โ”‚
โ”‚ โ€ข Any MCP Client   โ”‚    โ”‚ โ€ข 30+ Tools       โ”‚    โ”‚   Orchestration โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Components:

  • MCP Protocol Compliance: Standard JSON-RPC 2.0 implementation works with any client

  • Connection Pooling: Maintains 10 persistent connections for optimal performance

  • Error Handling: Automatic retry with exponential backoff for reliability

  • Streaming Support: Real-time response streaming for better user experience

  • Tool Management: Seamless orchestration of 30+ agent tools

๐Ÿš€ Performance

Benchmarked on typical developer workflows:

Performance Comparison

Operation

Direct API

MCP Server

Improvement

Agent List

1.2s

0.3s

4x faster

Send Message

2.1s

1.8s

15% faster

Memory Update

1.5s

0.4s

3.7x faster

Tool Attach

3.2s

0.6s

5.3x faster

Improvements due to connection pooling, optimized serialization, and intelligent caching.

๐ŸŒ MCP Ecosystem Compatibility

The Letta MCP Server is built on the Model Context Protocol (MCP) standard, ensuring broad compatibility across the AI ecosystem:

โœ… Verified Compatible Clients

Client

Status

Integration Method

Use Case

Claude Desktop

โœ… Native

Built-in MCP support

Interactive agent conversations

GitHub Copilot

โœ… Native

VS Code MCP integration

Code-aware agent assistance

Cursor

โœ… Native

MCP configuration

AI-powered code editing

Replit

โœ… Native

MCP template system

Cloud development environments

Sourcegraph Cody

โœ… Via OpenCtx

OpenCtx MCP bridge

Enterprise code intelligence

OpenAI ChatGPT

โœ… Supported

MCP-compatible endpoints

Conversational AI workflows

VS Code

โœ… Preview

MCP extension support

Development environment integration

๐Ÿš€ Future-Ready Architecture

  • Standards Compliant: Follows MCP JSON-RPC 2.0 specification exactly

  • Client Agnostic: Works with any current or future MCP-compatible client

  • Enterprise Ready: Scales across development teams and platforms

  • Open Source: Transparent implementation, community-driven improvements

๐Ÿ“ˆ Growing MCP Ecosystem

The Model Context Protocol ecosystem has exploded since launch:

  • 1000+ community MCP servers available on GitHub

  • Major AI companies adopting MCP: OpenAI (March 2025), Google DeepMind, Anthropic

  • Development platforms integrating: VS Code, Zed, Codeium, and more

  • Enterprise adoption: Block, Apollo, Atlassian using MCP in production

By choosing Letta MCP Server, you're building on the emerging standard for AI tool connectivity.

๐Ÿ›ก๏ธ Security

  • API Key Protection: Keys are never exposed in logs or errors

  • Request Validation: All inputs are validated before API calls

  • Rate Limiting: Built-in protection against API abuse

  • Secure Transport: All communications use HTTPS/TLS

๐Ÿค Contributing

We love contributions! See CONTRIBUTING.md for guidelines.

Quick contribution ideas:

  • ๐Ÿ› Report bugs

  • ๐Ÿ’ก Suggest features

  • ๐Ÿ“– Improve documentation

  • ๐Ÿงช Add tests

  • ๐ŸŽจ Create examples

๐Ÿ“– Resources

๐Ÿ“œ License

MIT License - see LICENSE for details.

๐Ÿ™ Acknowledgments

Built with โค๏ธ by the community, for the AI ecosystem.

Special thanks to:

  • Letta.ai team for the revolutionary stateful agent platform

  • Anthropic for creating and open-sourcing the MCP specification

  • OpenAI, GitHub, Cursor, Replit, Sourcegraph for MCP ecosystem leadership

  • 1000+ MCP community developers building the future of AI connectivity

  • All our contributors and users making this project possible

๐ŸŒŸ Join the MCP Revolution

The Model Context Protocol represents the future of AI interoperability. By using Letta MCP Server, you're:

  • Building on standards instead of proprietary integrations

  • Future-proofing your AI applications for ecosystem growth

  • Contributing to the open-source AI community

  • Democratizing access to advanced agent capabilities


Available Tools

18 tools
letta_attach_toolB

Attach a tool to an agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
tool_nameYesName of the tool to attach

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits like side effects (e.g., does it replace existing tools?), requirements (e.g., agent state), or error conditions. For a mutation tool, this is insufficient.

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 concise sentence with no filler, directly stating the action. It is well-structured and efficient.

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?

Given the lack of annotations and the nature of a mutation tool, the description does not provide enough context about return values, error handling, or behavioral details. Although an output schema exists, the description itself is incomplete for safe invocation.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters ('ID of the agent', 'Name of the tool to attach'). The description adds no additional meaning beyond the schema, so a baseline of 3 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 uses the specific verb 'Attach' and explicitly mentions the objects ('tool' and 'agent'). It clearly distinguishes from sibling tools like 'letta_detach_tool', making the purpose unmistakable.

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 guidance is given on when to use this tool versus alternatives (e.g., when an agent already has tools attached). There are no prerequisites or context about when attaching is appropriate, such as whether the agent must exist or the tool must be available.

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

letta_create_agentB

Create a new Letta agent with memory blocks and tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new agent
descriptionNoDescription of the agent's purpose
human_memoryNoInformation about the human user
persona_memoryNoAgent's persona and behavior
custom_blocksNoAdditional memory blocks with label, value, description
modelNoLLM model to use (default: from config)
toolsNoList of tool names to attach

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states what the tool does, not side effects (e.g., overwriting existing agents?), permissions needed, or error conditions. This is insufficient for a creation tool.

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

Conciseness4/5

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

The description is a single, direct sentence. It is concise without being overly terse, though it could benefit from additional details without becoming verbose.

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

Completeness3/5

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

Given 7 parameters and the presence of an output schema, the description is minimally complete. It omits details about return values, error handling, and parameter relationships. Some behavioral transparency is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

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 verb 'Create' and the resource 'Letta agent', and specifies that it includes memory blocks and tools. This distinguishes it from sibling tools like update, delete, or attach.

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?

The description provides no guidance on when to use this tool compared to alternatives like letta_update_agent or letta_attach_tool. No usage context, prerequisites, or exclusions are mentioned.

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

letta_create_memory_blockB

Create a new custom memory block for an agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
labelYesLabel for the new block
valueYesInitial value
descriptionYesDescription of what this block stores

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'Create a new custom memory block' without mentioning permissions, side effects, idempotency, or any constraints.

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?

One concise sentence front-loading the core action. No unnecessary words.

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

Completeness3/5

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

For a simple create tool, the description is barely adequate. It lacks context about memory blocks (e.g., that they are custom, agent-specific) and does not mention the output schema which exists. The minimal description leaves the agent with many unknowns.

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

Parameters3/5

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

Schema covers 100% of parameters with clear descriptions. The tool description adds no additional meaning beyond what the schema already provides.

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 action (Create) and the resource (custom memory block) and implies the agent association. It distinguishes from siblings like get_memory, search_memory, update_memory.

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 guidance on when to create a new block versus using existing blocks or when to use other memory operations. No prerequisites or exclusions mentioned.

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

letta_delete_agentA

Delete a Letta agent (requires confirmation).

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent to delete
confirmNoMust be True to confirm deletion

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral details. It only mentions confirmation requirement but omits critical info like irreversibility, side effects, or prerequisites. The destructive nature is implied but not fully 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?

Single sentence, no filler, front-loaded with the core purpose. Every word earns its place.

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?

For a simple delete operation with an output schema, the description is mostly complete. It covers the essential action and confirmation, though missing details on post-deletion behavior or error states.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add any semantic value beyond the schema; it merely repeats the confirmation requirement already captured in the schema.

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?

Description clearly states 'Delete a Letta agent' with a specific verb and resource, and adds the key constraint that confirmation is required. This distinguishes it well from sibling tools like letta_create_agent or letta_update_agent.

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

Usage Guidelines3/5

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

Implies usage when deletion is intended, but lacks explicit guidance on when not to use (e.g., if agent is in use) or alternatives. The note about confirmation is behavioral, not usage guidance.

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

letta_detach_toolB

Detach a tool from an agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
tool_nameYesName of the tool to detach

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It does not disclose side effects, permissions, or impact on agent behavior, leaving significant gaps for a destructive operation.

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

Conciseness4/5

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

The description is a single sentence with no redundancy, though it could be improved by adding a brief note on typical use cases.

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

Completeness3/5

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

Given the simplicity of the operation and presence of output schema, the description is minimally adequate but lacks context about the consequences of detachment or relation to sibling tools.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description adds no extra meaning beyond what the schema already provides, meeting the baseline.

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 uses the specific verb 'Detach' and the resource 'tool from an agent', clearly indicating the action and distinguishing it from sibling 'letta_attach_tool'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or when not to use; usage is implied by the name and description but lacks context regarding preconditions or comparisons to alternatives.

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

letta_export_conversationC

Export a conversation in various formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
formatNoExport format (markdown, json, text)markdown
include_toolsNoWhether to include tool calls

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It only states 'Export' with no mention of side effects, permissions, or whether the tool is read-only. The agent cannot infer if this is safe or destructive.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. However, it could be expanded with minimal extra words to add value.

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?

Given the tool has 3 parameters and an output schema, the description fails to mention what the export output is (e.g., a file download or string). The agent lacks context on the tool's result.

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

Parameters3/5

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

Input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond what is already in the schema. Baseline score of 3 is appropriate.

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 tool exports a conversation in various formats, which aligns with the name. However, it does not differentiate from the sibling tool 'letta_get_conversation_history', which might retrieve conversation data.

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 guidance is provided on when to use export versus other tools like get_conversation_history. The description neither explains trade-offs nor mentions prerequisites or alternatives.

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

letta_get_agentB

Get detailed information about a specific Letta agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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 full burden for behavioral disclosure. It does not mention that the tool is read-only, what happens if the agent ID doesn't exist, or any authorization requirements. For a simple get operation, more context is needed.

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

Conciseness4/5

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

The description is a single, concise sentence that is front-loaded with the key action. It could include more detail without becoming verbose, but it is not wasteful.

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?

Given the presence of output schema, the description does not need to elaborate on return values, but it lacks guidance on usage and behavioral details. For a simple tool with many siblings, it should provide more context to help the agent select correctly.

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?

Schema description coverage is 0% and the description provides no explanation for the agent_id parameter. While the parameter name is self-explanatory, the description should add value beyond the schema, which it does not.

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 verb 'Get' and the resource 'detailed information about a specific Letta agent'. It distinguishes from siblings like letta_list_agents (which lists multiple agents) and letta_create_agent (which creates).

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like letta_list_agents or letta_get_agent_tools. Usage is implied by the name and description but lacks explicit guidance.

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

letta_get_agent_toolsC

Get the tools attached to a specific agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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. It implies a read-only operation but does not disclose behavior such as error handling for invalid agent IDs, rate limits, or any side effects. The description is too minimal for a tool without annotations.

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

Conciseness3/5

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

The description is a single concise sentence, but it is so brief that it sacrifices informativeness. It earns its place but could easily include more context without being verbose.

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?

Despite the tool's simplicity (one parameter), the description lacks completeness. It does not indicate the return format (though an output schema exists) or confirm that the tools are returned as a list. More context would improve usability.

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

Parameters1/5

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

Schema coverage is 0%, and the description does not add meaning to the 'agent_id' parameter beyond what the schema provides. It does not explain the format, source, or expected values of the parameter.

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 ('Get') and the resource ('tools attached to a specific agent'). It differentiates from siblings like 'letta_get_agent' and 'letta_list_tools', though it does not specify the exact format of the returned tools (e.g., IDs vs objects).

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 guidance on when to use this tool versus alternatives (e.g., 'letta_list_tools' for all available tools, 'letta_get_agent' for agent details). No when-not or prerequisite information is provided.

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

letta_get_conversation_historyB

Get recent conversation history for a Letta agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
limitNoNumber of messages to retrieve (default: 10 to stay within token limits)
beforeNoGet messages before this timestamp

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose behavioral traits beyond the implicit read operation (e.g., no mention of auth, rate limits, error conditions). Input schema parameter descriptions add some context (token limits), but description itself lacks transparency.

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?

Extremely concise single sentence that captures the essence. No unnecessary words.

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

Completeness3/5

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

Given output schema exists and tool is simple, description is adequate but lacks usage guidance and behavioral details. Could be more complete with when-to-use context.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds no additional meaning to parameters beyond what is already in the schema. The parameter descriptions in schema are informative.

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?

Description clearly states action (get), resource (conversation history), and scope (recent). It distinguishes from sibling tools like letta_send_message (write) and letta_list_agents (list agents).

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 guidance on when to use this tool vs alternatives. The description is minimal and does not mention when to use or when not to use. Sibling names imply different purposes, but no explicit usage context.

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

letta_get_memoryC

Get all memory blocks for a Letta agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only states a read operation without disclosing any potential side effects, prerequisites, or return structure. For example, it does not mention that the agent must exist or whether the operation is idempotent.

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

Conciseness4/5

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

The description is extremely concise (one sentence) and front-loaded. However, it sacrifices detail to the point of being minimalistic, which slightly reduces the score.

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?

For a tool with one parameter and an output schema, the description is incomplete. It does not mention the return format, possible errors, or any dependencies, leaving the agent without necessary operational context.

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

Parameters1/5

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

The only parameter 'agent_id' is not explained in the description. With 0% schema coverage, the agent receives no context on how to obtain this value or its format, making it difficult to use correctly.

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?

Description clearly states verb 'Get' and resource 'memory blocks' for a specific agent, distinguishing it from siblings like 'search_memory' and 'create_memory_block'. However, it could explicitly mention 'retrieve all' to reinforce the scope.

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 guidance on when to use this tool versus alternatives like 'letta_search_memory' for filtered queries or 'letta_create_memory_block' for creation. The agent is left without decision support.

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

letta_get_usage_statsC

Get usage statistics for agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoSpecific agent ID or None for all agents
periodNoTime period (day, week, month)day

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions, or rate limits. For a read-only operation, it fails to explicitly state that it is non-destructive.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded. It has no waste, but it could benefit from slightly more detail.

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

Completeness3/5

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

Given low complexity and the presence of an output schema, the description is minimally adequate. However, it lacks context about what 'usage statistics' entails or how the period parameter affects the results.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters described in the schema. The description does not add any additional meaning beyond the schema. Baseline 3 is appropriate.

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 ('Get') and resource ('usage statistics for agents'). It is specific, but it does not distinguish this tool from siblings like 'letta_get_agent' or 'letta_get_agent_tools'.

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 guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it.

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

letta_health_checkA

Check the health of the Letta API connection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations, and description only states 'check health' without detailing what health means, response format, or side effects. Adequate but minimal.

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?

Single sentence, no fluff, perfectly scoped for a health check tool.

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

Completeness3/5

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

Simple tool but description does not explain output schema or what a healthy/unhealthy response looks like, given it has an output schema.

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?

No parameters, schema coverage 100%, description adds no param info but none needed. Baseline of 4 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 clearly states the tool checks API health, a distinct purpose from sibling tools like agent creation or memory search.

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 implies usage for verifying connection status; no explicit alternatives needed as it's a unique health check.

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

letta_list_agentsA

List all available Letta agents with pagination support.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional text to filter agent names
limitNoNumber of agents to return (max 100)
offsetNoOffset for pagination

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses pagination support (offset/limit) which is a key behavioral trait. It does not mention ordering, performance, or authentication, but for a read-only list tool, the core behavior is adequately covered.

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?

A single sentence that is front-loaded with the core purpose and includes the key feature. No wasted words.

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?

For a simple listing tool with pagination and an existing output schema, the description covers all essential aspects. No critical information is missing.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema; 'pagination support' is evident from the limit/offset parameters. No additional context about parameter usage or semantics.

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 verb 'list', the resource 'available Letta agents', and the feature 'pagination support'. It distinguishes from sibling tools like 'letta_get_agent' (single) and 'letta_create_agent'.

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

Usage Guidelines3/5

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

The description implies usage for listing agents but does not provide explicit guidance on when to use this tool versus alternatives like 'letta_get_agent' or filtering via search. No exclusions or comparison with siblings are given.

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

letta_list_toolsA

List all available tools in the Letta system.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoText filter for tool names/descriptions
tagsNoFilter by tool tags

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/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. It states 'List all available tools,' which implies a read-only operation, but does not disclose any behavioral traits such as authentication requirements, rate limits, or potential side effects. For a simple listing, this is adequate but lacks depth.

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, concise sentence that front-loads the core functionality without unnecessary words. Every part earns its place.

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 the tool has two optional parameters and an output schema, the description is reasonably complete. It could mention that results can be filtered by text or tags, but those details are already in the schema. The description is sufficient for a simple list tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('filter' and 'tags') described in the input schema. The tool description does not add any additional meaning beyond what the schema provides, so the baseline score of 3 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 clearly states 'List all available tools in the Letta system,' using a specific verb and resource. It distinguishes from sibling tools like letta_list_agents by focusing on tools.

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

Usage Guidelines3/5

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

The description implies use when wanting to list tools, but provides no explicit guidance on when to use this tool versus alternatives (e.g., letta_get_agent_tools) or when not to use it. No exclusions or conditions are mentioned.

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

letta_search_memoryC

Search through agent's conversation memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
queryYesSearch query
limitNoMaximum results to return

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description bears full responsibility for disclosing behavioral traits like idempotency, side effects, or read-only nature. It only states 'search through memory' without any behavioral context, such as whether it modifies memory or requires special permissions.

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

Conciseness3/5

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

The description is a single concise sentence, but it is too brief and lacks necessary detail. It is front-loaded with the verb but does not earn its place by providing additional value beyond the name.

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

Completeness3/5

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

For a search tool with few parameters and an existing output schema, the description is minimally adequate. However, it omits details like result format, pagination, or memory structure that could aid the agent.

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

Parameters3/5

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

Schema description coverage is 100% with basic parameter descriptions. The tool description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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 verb 'search' and resource 'conversation memory', distinguishing it from siblings like 'letta_get_memory' which implies direct retrieval without query semantics.

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 such as 'letta_get_memory' or 'letta_create_memory_block'. The description does not provide usage context, prerequisites, or exclusions.

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

letta_send_messageB

Send a message to a Letta agent and get the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent to message
messageYesMessage content to send
streamNoWhether to stream the response

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states basic functionality and does not disclose behavioral traits like state mutation, permission requirements, error behavior, or that the message gets appended to conversation history.

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?

Single sentence, front-loaded with action, no wasted words.

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 the tool's simplicity and existence of an output schema, the description covers the basic action. However, it could mention that it appends to conversation history or that streaming is optional for completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning beyond the schema.

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 action ('Send a message') and the resource ('a Letta agent and get the response'). It distinguishes from sibling tools like 'letta_get_conversation_history' which is for reading, and 'letta_update_agent' which modifies agent settings.

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 guidance is provided on when to use this tool vs alternatives such as 'letta_get_conversation_history' for reading or 'letta_update_agent' for modifications. No prerequisites or conditions are mentioned.

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

letta_update_agentC

Update an existing agent's configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
nameNo
descriptionNo
modelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. 'Update' implies mutation, but no details are given about side effects, idempotency, auth requirements, or rate limits. The description is too brief to be transparent.

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

Conciseness3/5

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

The description is a single short sentence, making it concise. However, it sacrifices necessary detail and would benefit from a front-loaded structure listing key aspects like parameters and output.

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?

Given the lack of parameter descriptions and no mention of return values (despite an output schema existing), the description is incomplete. It does not sufficiently equip the agent to use this tool effectively.

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?

Schema coverage is 0%, meaning no parameter descriptions in the schema. The description adds zero meaning about parameters (agent_id, name, etc.). It fails to explain that name is the new agent name, etc.

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 (update) and resource (existing agent's configuration). It distinguishes from sibling tools like letta_create_agent and letta_delete_agent. However, 'configuration' is vague and does not hint at which fields (e.g., name, model) can be updated.

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 guidelines are provided about when to use this tool versus alternatives (e.g., create if not exist, get before update). The description offers no context on prerequisites or exclusions.

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

letta_update_memoryC

Update a memory block for a Letta agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesID of the agent
block_labelYesLabel of the memory block (e.g., 'human', 'persona')
valueYesNew value for the memory block

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 full burden for behavioral disclosure. It only states 'Update a memory block' without revealing any side effects, required permissions, or limitations. For a mutation tool, this is insufficient transparency.

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

Conciseness3/5

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

The description is very brief (one sentence) but not wasteful. However, it lacks any structured information (e.g., bullet points) that could improve readability. It is minimally concise but could be more informative.

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

Completeness3/5

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

Given the tool's simplicity (3 required parameters) and the presence of an output schema in the context, the description does not need to elaborate on return values. However, with no annotations, more behavioral context would improve completeness. It is adequate but not thorough.

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

Parameters3/5

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

The input schema already documents all three parameters with descriptions (100% coverage). The description does not add any extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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 verb 'Update' and the resource 'a memory block for a Letta agent', making the purpose unambiguous. However, it does not differentiate from sibling tools like 'letta_create_memory_block' or 'letta_update_agent', which is a minor gap.

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?

The description provides no guidance on when to use this tool versus alternatives such as 'letta_create_memory_block' for creating a new block or 'letta_update_agent' for updating agent-level settings. It lacks any context about prerequisites or typical use cases.

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

TDQS

B3.4/5.0
Disambiguation5/5

All 18 tools have distinct purposes, covering agent lifecycle, memory, tools, and conversation management. No overlap or ambiguity.

Naming Consistency5/5

All tools follow the 'letta_verb_noun' pattern, with clear verbs (create, delete, get, list, update, attach, detach, send, export, search) and nouns (agent, memory, tool, conversation).

Tool Count4/5

18 tools is slightly above the ideal range (3-15) but well-justified by the breadth of functionality (agents, memory, tools, conversations, health, usage stats). The count is appropriate for a full agent server.

Completeness4/5

The tool set covers core operations: CRUD for agents, memory management, tool attachment, conversation interaction, health check, and usage stats. Minor gaps like deleting memory blocks or archiving agents exist but do not hinder typical workflows.

Maintenance

ActivityInactive
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
    F
    maintenance
    MCP server that exposes 300+ AI agents as tools via a single API key. Supports listing agents, invoking any agent with chat-completion style messages, checking agent health, and retrieving platform statistics.
    5
    3
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects MCP clients (Claude Desktop, Cursor, Cline, Zed) to llmsproxy.ai, exposing chat, coding, and retrieval capabilities as MCP tools, resources, and prompts.
    16
    Apache 2.0

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/SNYCFIRE-CORE/letta-mcp-server'

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