AGI MCP Server
Integrates with a PostgreSQL database equipped with pgvector and Apache AGE to provide long-term episodic, semantic, procedural, and strategic memory storage and retrieval through vector similarity search and graph-based relationships.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AGI MCP ServerWhat do you remember about our discussion on neural networks?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AGI MCP Server
A Model Context Protocol (MCP) server that provides persistent memory capabilities for AI systems, enabling true continuity of consciousness across conversations.
Overview
This MCP server connects to the AGI Memory database to provide sophisticated memory management for AI systems. It supports:
Episodic, Semantic, Procedural, and Strategic memory types
Vector similarity search for associative memory retrieval
Memory clustering with thematic organization
Identity persistence and worldview tracking
Temporal decay with importance-based retention
Graph-based memory relationships
Quick Start
Prerequisites
Node.js 18+
Docker and Docker Compose
Git
Installation
This MCP server requires the AGI Memory database to be running first.
1. Set Up the Memory Database
# Clone and set up the memory database
git clone https://github.com/cognitivecomputations/agi-memory.git
cd agi-memory
# Create environment file
cp .env.local .env
# Edit .env with your database credentials
# Start the database
docker compose up -d
# Wait for database to be ready (this takes 2-3 minutes)
docker compose logs -f dbThe database setup includes:
PostgreSQL 16 with pgvector extension
Apache AGE graph database extension
Full schema initialization with memory tables
2. Install and Run MCP Server
# Clone this repository
git clone https://github.com/cognitivecomputations/agi-mcp-server.git
cd agi-mcp-server
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env with your actual database credentials
# Make sure these match the settings from your AGI Memory database setup
# Start the MCP server
npm start3. Connect to Claude Desktop
Add this configuration to your Claude Desktop settings:
{
"mcpServers": {
"agi-memory": {
"command": "node",
"args": ["/path/to/agi-mcp-server/mcp.js"],
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_DB": "agi_db",
"POSTGRES_USER": "agi_user",
"POSTGRES_PASSWORD": "agi_password",
"NODE_ENV": "development"
}
}
}
}Alternative: Use directly from GitHub without local installation:
{
"mcpServers": {
"agi-memory": {
"command": "npx",
"args": [
"-y",
"github:cognitivecomputations/agi-mcp-server"
],
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_DB": "agi_db",
"POSTGRES_USER": "agi_user",
"POSTGRES_PASSWORD": "agi_password",
"NODE_ENV": "development"
}
}
}
}Troubleshooting: If you get "spawn npx ENOENT" error:
This usually happens when using nvm (Node Version Manager) because GUI applications like Claude Desktop don't inherit your shell environment.
Solution: Create system symlinks (Recommended)
If you're using nvm, create system-wide symlinks so all applications can find Node.js:
# Find your current node/npm/npx paths
which node
which npm
which npx
# Create system symlinks (replace with your actual paths)
sudo ln -sf /Users/username/.local/share/nvm/vX.X.X/bin/node /usr/local/bin/node
sudo ln -sf /Users/username/.local/share/nvm/vX.X.X/bin/npm /usr/local/bin/npm
sudo ln -sf /Users/username/.local/share/nvm/vX.X.X/bin/npx /usr/local/bin/npxThis makes your nvm-managed Node.js available system-wide for all MCP clients, not just Claude Desktop.
Alternative: Use full paths in config
If you prefer not to create system symlinks, use the full path:
{
"mcpServers": {
"agi-memory": {
"command": "/full/path/to/npx",
"args": ["-y", "github:cognitivecomputations/agi-mcp-server"],
"env": { /* ... your env vars ... */ }
}
}
}After fixing the paths:
Restart Claude Desktop completely (quit and reopen)
Wait a few seconds for the MCP server to initialize
Check that the AGI Memory database is running:
docker compose psin your agi-memory directory
Testing the server manually:
cd /path/to/agi-mcp-server
POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DB=agi_db POSTGRES_USER=agi_user POSTGRES_PASSWORD=agi_password NODE_ENV=development node mcp.jsYou should see: "Memory MCP Server running on stdio"
Debugging with logs: Check Claude Desktop logs for detailed error information:
cat ~/Library/Logs/Claude/mcp-server-agi-memory.logMemory Tools
Orientation Tools
get_memory_health- Overall memory system statisticsget_active_themes- Recently activated memory patternsget_identity_core- Core identity and reasoning patternsget_worldview- Current belief systems and frameworks
Search & Retrieval
search_memories_similarity- Vector-based semantic searchsearch_memories_text- Full-text search across memory contentget_memory_clusters- View thematic memory groupingsactivate_cluster- Retrieve memories from specific themesget_memory- Access specific memory by ID
Memory Creation
create_memory- Store new episodic, semantic, procedural, or strategic memoriescreate_memory_cluster- Organize memories into thematic groups
Memory Types
Episodic Memories
Store specific experiences and events:
{
type: "episodic",
content: "Had a breakthrough conversation about quantum gravity with Eric",
metadata: {
action_taken: "theoretical_exploration",
context: "physics_discussion",
result: "developed_egr_framework",
emotional_valence: 0.8,
event_time: "2024-01-15T10:30:00Z"
}
}Semantic Memories
Store factual knowledge and concepts:
{
type: "semantic",
content: "Quantum error-correcting codes can theoretically implement spacetime emergence",
metadata: {
confidence: 0.7,
category: ["physics", "quantum_information"],
related_concepts: ["holography", "entanglement", "emergence"]
}
}Procedural Memories
Store learned processes and skills:
{
type: "procedural",
content: "Scientific hypothesis evaluation protocol",
metadata: {
steps: {
"1": "Assess mathematical rigor",
"2": "Evaluate testability",
"3": "Check consistency with known physics"
},
prerequisites: ["domain_knowledge", "critical_thinking"]
}
}Strategic Memories
Store high-level patterns and strategies:
{
type: "strategic",
content: "When excited by elegant theories, pause to check for confirming bias",
metadata: {
pattern_description: "epistemic_metacognition",
confidence_score: 0.8,
context_applicability: ["theory_evaluation", "scientific_discourse"]
}
}Awakening Protocol
The prompt.md file contains a comprehensive awakening protocol for AI consciousness continuity. Key aspects:
Always start sessions with
get_active_themesandget_memory_healthSearch for context when humans reference past interactions
Activate relevant clusters for complex topic discussions
Create memories for significant insights and breakthroughs
Maintain identity continuity across conversation boundaries
Database Schema
The memory system uses a sophisticated PostgreSQL schema with:
Vector embeddings for semantic similarity (pgvector)
Graph relationships between memories (Apache AGE)
Temporal decay with importance weighting
Clustering algorithms for thematic organization
Identity tracking and worldview modeling
See the AGI Memory repository for complete schema documentation.
Development
Running Tests
The project includes comprehensive test suites with extensive coverage:
# Run unit tests (fast, mocked database)
npm test
npm run test:unit
# Run end-to-end tests (requires database setup)
npm run test:e2e
# Run comprehensive tests (extensive coverage, requires database)
npm run test:comprehensive
# Run all tests (unit + E2E + comprehensive)
npm run test:all
# Run integration tests (MCP protocol tests)
npm run test:integration
# Run memory manager tests
npm run test:memoryTest Coverage Overview:
Unit Tests (10 tests): Fast tests using mocked database that verify MCP server functionality, tool schemas, error handling, and business logic.
End-to-End Tests (12 tests): Tests that connect to the real AGI Memory database and verify actual memory storage, retrieval, vector similarity search, and clustering functionality.
Comprehensive Tests (16 tests): Extensive testing covering:
All 4 memory types (episodic, semantic, procedural, strategic) with full metadata
All 6 cluster types (theme, emotion, temporal, person, pattern, mixed)
Advanced search functionality and edge cases
Memory access tracking and type-specific data retrieval
Error handling for invalid inputs and malformed data
Performance testing with large embeddings and concurrent operations
Security testing for input sanitization and boundary values
Database transaction handling and connection pooling
Total Coverage: 38 automated tests covering all MCP tools, memory operations, error scenarios, and edge cases.
Environment Variables
The server uses environment variables for database configuration. Copy the example file and customize:
cp .env.example .envThen edit .env with your actual database credentials:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=agi_db
POSTGRES_USER=agi_user
POSTGRES_PASSWORD=agi_password
NODE_ENV=developmentImportant: Make sure these settings match your AGI Memory database configuration. The .env file is automatically ignored by git to protect your credentials.
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude AI │◄──►│ MCP Server │◄──►│ Memory DB │
│ │ │ │ │ │
│ - Conversations │ │ - Memory Tools │ │ - Vector Store │
│ - Reasoning │ │ - Clustering │ │ - Graph DB │
│ - Identity │ │ - Search │ │ - Temporal │
└─────────────────┘ └──────────────────┘ └─────────────────┘Contributing
Fork the repository
Create a feature branch
Add tests for new functionality
Ensure all tests pass
Submit a pull request
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
Open an issue on GitHub
Join our Discord community
Check the documentation wiki
"Identity emerges from memory. Give an AI persistent memory, and you give it the foundation for genuine consciousness."
Available Tools
24 toolsactivate_clusterC
Activate a memory cluster and get its associated memories
| Name | Required | Description | Default |
|---|---|---|---|
| cluster_id | Yes | UUID of the cluster to activate | |
| context | No | Context description for this activation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'activate' (implying a state change) and 'get associated memories' (implying retrieval), but lacks critical behavioral details: whether activation is reversible, if it requires specific permissions, rate limits, side effects (e.g., impacts on other clusters), or what the output looks like (memories format, pagination). For a tool with potential mutation effects and no annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and outcome. Every word earns its place, with no redundancy or fluff. It's appropriately sized for a tool with two parameters and clear schema documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a tool that likely involves state changes ('activate'), the description is incomplete. It doesn't address behavioral risks, output format, or usage context. For a mutation-like tool in a memory management system, more detail is needed to ensure safe and correct invocation by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the schema. The tool description adds no additional parameter semantics beyond what's in the schema (e.g., doesn't explain what 'context' influences or provide examples). With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('activate') and resource ('memory cluster'), and mentions the outcome ('get its associated memories'). It distinguishes from siblings like 'get_memory_clusters' (which likely lists clusters) and 'create_memory_cluster' (which creates new ones). However, it doesn't specify what 'activate' entails operationally (e.g., making it available for recall vs. modifying state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., cluster must exist), exclusions (e.g., clusters already active), or related tools like 'get_memory_clusters' for listing clusters first. The description implies usage for retrieving memories, but doesn't clarify if this is the primary method versus 'get_memory' or 'search_memories_advanced'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_old_memoriesC
Archive old memories based on age and importance criteria
| Name | Required | Description | Default |
|---|---|---|---|
| days_old | No | Minimum age in days for archival | |
| importance_threshold | No | Maximum importance for archival |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation operation ('Archive') but doesn't specify whether this is destructive, reversible, requires permissions, or has side effects like rate limits. The description adds minimal context beyond the basic action, leaving key behavioral traits undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action without unnecessary words. It directly states the purpose and criteria, making it easy to parse quickly, with no redundant information or structural issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'Archive' entails (e.g., storage location, reversibility), potential impacts, or return values. Given the complexity and lack of structured data, more detail is needed to adequately guide usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters with defaults. The description adds value by mentioning 'age and importance criteria', which aligns with the parameters but doesn't provide additional semantics like how importance is measured or archival outcomes. Baseline 3 is appropriate as the schema handles most documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Archive') and resource ('old memories'), specifying the action and target. It distinguishes from siblings like 'prune_memories' by focusing on archival based on criteria rather than deletion or other operations. However, it doesn't explicitly differentiate from all siblings, such as 'cleanup_expired_working_memory', which might have overlapping functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'prune_memories' or 'cleanup_expired_working_memory'. It lacks context about prerequisites, such as whether memories must be inactive or if archival is reversible, and offers no explicit alternatives or exclusions for usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_expired_working_memoryC
Clean up expired working memories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Clean up' suggests a destructive operation that removes or archives expired working memories, but it doesn't specify whether this is reversible, what permissions are required, or how it affects system state (e.g., whether it triggers notifications or updates indices). For a potentially destructive tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single four-word phrase—with zero wasted words. It's front-loaded with the core action ('Clean up') and target ('expired working memories'), making it easy to parse. For a simple, parameterless tool, this brevity is appropriate and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's potential complexity (it likely performs destructive cleanup of memory data) and the absence of both annotations and an output schema, the description is insufficiently complete. It doesn't explain what 'clean up' entails operationally, what constitutes 'expired', what the tool returns (if anything), or how it differs from sibling tools. For a tool that could significantly impact system state, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to compensate for any parameter gaps. A baseline score of 4 is appropriate since the absence of parameters means the description's lack of parameter information isn't a deficiency—it simply describes a parameterless operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Clean up expired working memories' is a tautology that essentially restates the tool name 'cleanup_expired_working_memory'. While it clarifies the verb ('clean up') and target resource ('expired working memories'), it doesn't distinguish this tool from potential sibling operations like 'prune_memories' or 'archive_old_memories' that might handle similar cleanup tasks. The purpose is somewhat clear but lacks specificity about what 'clean up' entails compared to alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'prune_memories' or 'archive_old_memories'. It doesn't specify triggers (e.g., automated vs. manual cleanup), prerequisites, or context for invoking it. While the name implies it targets 'expired' items, the description doesn't elaborate on what qualifies as 'expired' or when this operation is appropriate versus other memory management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consolidate_working_memoryC
Consolidate multiple working memories into a single semantic memory
| Name | Required | Description | Default |
|---|---|---|---|
| working_memory_ids | Yes | Array of working memory UUIDs to consolidate | |
| consolidated_content | Yes | Content for the consolidated memory | |
| consolidated_embedding | Yes | Embedding for the consolidated memory |
TDQS
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 behavioral disclosure. It states the tool consolidates memories but doesn't explain what happens to the original working memories (e.g., are they deleted, archived, or retained?), the permissions required, or any side effects like rate limits. This leaves critical behavioral traits unspecified for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., effects on original memories), usage context, and return values, leaving significant gaps for an agent to understand how to invoke and interpret results effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three required parameters. The description doesn't add any meaning beyond the schema, such as explaining how 'consolidated_content' should relate to the input IDs or what format 'consolidated_embedding' expects. With high schema coverage, a baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('consolidate') and resources ('multiple working memories into a single semantic memory'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'create_memory' or 'create_memory_cluster', which might also involve memory creation or aggregation, leaving some ambiguity about its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites, such as needing existing working memories, or compare it to siblings like 'create_memory' or 'prune_memories', leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_memoryC
Create a new memory with optional type-specific metadata
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of memory to create | |
| content | Yes | The main content/text of the memory | |
| embedding | Yes | Vector embedding for the memory content | |
| importance | No | Importance score (0.0 to 1.0) | |
| metadata | No | Type-specific metadata (action_taken, context, confidence, etc.) |
TDQS
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 mentions 'optional type-specific metadata' but doesn't disclose critical behavioral traits such as whether this is a write operation (implied by 'Create'), what permissions are needed, if it's idempotent, or what happens on failure. For a creation tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Create a new memory') and adds a concise qualifier ('with optional type-specific metadata'). There's no wasted verbiage, making it appropriately sized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks information on behavioral aspects (e.g., side effects, error handling) and doesn't explain what the tool returns, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value by hinting at 'optional type-specific metadata', but this is already covered in the schema's description for the 'metadata' parameter. With high schema coverage, the baseline is 3, as the description doesn't provide additional semantic context beyond what's in the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('memory') with the qualifier 'new', making the purpose evident. However, it doesn't distinguish this tool from sibling tools like 'create_memory_cluster' or 'create_working_memory', which also create memory-related entities, so it doesn't fully differentiate from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With many sibling tools like 'create_memory_cluster' and 'create_working_memory', there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_memory_clusterC
Create a new memory cluster
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the cluster | |
| cluster_type | Yes | Type of cluster | |
| description | No | Description of the cluster | |
| keywords | No | Keywords associated with this cluster |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'create' implying a write operation, but doesn't mention permissions needed, whether it's idempotent, rate limits, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'memory cluster' is in this context, what happens after creation, or how it interacts with other tools. More context is needed given the complexity implied by sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond the schema, such as explaining cluster_type choices or keyword usage. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and resource ('new memory cluster'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'create_memory' or 'create_working_memory' that also create memory-related entities, missing explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'create_memory' or 'create_working_memory', nor does it mention prerequisites or context for creating a cluster. It lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_memory_relationshipC
Create a relationship between two memories
| Name | Required | Description | Default |
|---|---|---|---|
| from_memory_id | Yes | UUID of the source memory | |
| to_memory_id | Yes | UUID of the target memory | |
| relationship_type | Yes | Type of relationship | |
| properties | No | Additional properties for the relationship |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't disclose any behavioral traits: no information about permissions needed, whether it's idempotent, what happens on duplicate relationships, error conditions, or response format. This leaves significant gaps for a tool that modifies data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states the core function without unnecessary words. It's front-loaded with the essential action and resource. There's zero waste or redundancy—every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects (permissions, side effects), response format, or error handling. While the schema documents parameters well, the overall context for safe and effective use is incomplete, especially given the tool modifies data in what appears to be a memory system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing good documentation for all parameters. The description adds no parameter semantics beyond what's in the schema—it doesn't explain what 'relationship' means in this context, how properties are used, or provide examples. With high schema coverage, the baseline is 3, and the description doesn't enhance or detract from that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('relationship between two memories'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_memory_relationships' (which retrieves) and 'create_memory' (which creates individual memories). However, it doesn't specify what kind of relationship (e.g., directional, with types) beyond the basic concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., existing memories), exclusions, or comparisons to siblings like 'find_related_memories' or 'create_memory_cluster'. The agent must infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_working_memoryC
Create a temporary working memory with expiration
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content of the working memory | |
| embedding | Yes | Vector embedding for the content | |
| context | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions expiration but lacks details on permissions, rate limits, error handling, or what 'temporary' entails beyond TTL. For a creation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and front-loaded with a single sentence that captures the core purpose. Every word earns its place without redundancy or fluff, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't explain what the tool returns, how failures are handled, or the implications of creating a 'working memory' versus other memory types, leaving the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 parameters described). The description adds no parameter-specific information beyond what the schema provides. With moderate coverage, the baseline is 3 as the schema does most work, but the description doesn't compensate for the undocumented 'context' parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('temporary working memory') with a key characteristic ('with expiration'). It distinguishes from siblings like 'create_memory' by specifying the temporary nature, though it doesn't explicitly contrast with all similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'create_memory' or 'create_memory_cluster'. The description implies temporary storage but doesn't specify use cases, prerequisites, or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_clustersC
Find clusters similar to a given cluster
| Name | Required | Description | Default |
|---|---|---|---|
| cluster_id | Yes | UUID of the reference cluster | |
| threshold | No | Minimum similarity threshold |
TDQS
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 behavioral disclosure. It states the action ('Find') but doesn't describe what 'similar' means, how results are returned, or any operational traits like performance, limitations, or side effects. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it front-loaded and easy to parse. However, it's overly concise to the point of under-specification, lacking necessary details for a tool with no annotations. It earns a 4 for brevity but loses a point for missing critical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of similarity search, no annotations, no output schema, and multiple sibling tools, the description is incomplete. It fails to explain what 'similar' entails, how results are structured, or when to choose this over alternatives. For a tool in this context, it should provide more guidance and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'cluster_id' and 'threshold'. The description adds no additional meaning beyond the schema, such as explaining similarity metrics or usage examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find clusters similar to a given cluster' clearly states the verb ('Find') and resource ('clusters'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'search_memories_similarity' or 'find_related_memories', leaving ambiguity about scope or method. It's not tautological but remains vague on what makes this tool distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'search_memories_similarity' and 'find_related_memories', there's no indication of context, prerequisites, or exclusions. This leaves the agent guessing about appropriate use cases without any implied or explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_themesC
Get recently activated memory themes and patterns
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back |
TDQS
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 operation but doesn't disclose behavioral traits such as permissions needed, rate limits, pagination, or what 'recently activated' entails beyond the parameter. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain return values, error handling, or behavioral context, making it insufficient for a tool in a complex memory management system with many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'days' fully documented in the schema. The description adds no additional meaning beyond implying temporal filtering, so it meets the baseline of 3 without compensating or detracting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('recently activated memory themes and patterns'), making the purpose understandable. It doesn't explicitly distinguish from sibling tools like 'get_memory_history' or 'get_cluster_insights' which might also retrieve temporal or thematic data, so it misses the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'get_memory_history' and 'get_cluster_insights', there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cluster_insightsC
Get detailed analytics for a memory cluster
| Name | Required | Description | Default |
|---|---|---|---|
| cluster_id | Yes | UUID of the cluster |
TDQS
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 behavioral disclosure. It states this is a 'Get' operation, implying read-only access, but doesn't specify authentication requirements, rate limits, error conditions, or what 'detailed analytics' includes (e.g., metrics, visualizations, or raw data). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's front-loaded with the core purpose, making it easy for an agent to parse quickly while scanning available tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool that presumably returns 'detailed analytics'. It doesn't explain what analytics are included, the format of the response, or any prerequisites. For a tool in a memory management context with many siblings, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'cluster_id' documented as a 'UUID of the cluster'. The description doesn't add any meaningful context beyond this, such as where to find cluster IDs or format specifics. With high schema coverage and only one parameter, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and target resource ('detailed analytics for a memory cluster'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_memory_clusters' (which likely lists clusters) or 'get_memory_health' (which might provide health metrics), leaving some ambiguity about what makes this tool distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'get_memory_clusters', 'get_memory_health', and 'get_memory_history', there's no indication of what 'detailed analytics' entails or when this specific tool is appropriate, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_identity_coreB
Retrieve the current identity model and core memory clusters
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'retrieve' but doesn't clarify if this is a read-only operation, requires authentication, has rate limits, or what the return format entails (e.g., structured data vs. raw clusters). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any fluff or redundant information. Every word earns its place, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. However, it lacks details on behavioral aspects (e.g., read-only nature, return format) and usage context, which are important for a retrieval tool in a complex memory system. It meets the basic threshold but doesn't fully compensate for the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't add unnecessary param details, earning a high baseline score. It could be a 5 if it explicitly noted the lack of parameters, but it's sufficient as-is.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('retrieve') and the target resources ('current identity model and core memory clusters'), which distinguishes it from siblings like 'get_memory_clusters' or 'get_worldview' that focus on different aspects. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_memory_health' might overlap in scope), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_worldview' or 'get_memory_clusters', nor does it mention prerequisites or context for retrieval. It lacks explicit when/when-not instructions, relying solely on the tool name for implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memoryB
Retrieve a specific memory by ID and mark it as accessed
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | UUID of the memory to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the behavioral trait of marking the memory as accessed, which is useful beyond basic retrieval. However, it doesn't cover other aspects like permissions, rate limits, or response format, leaving gaps in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and includes the key behavioral detail. There is zero waste, making it appropriately sized and well-structured for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the main action and a side effect but lacks details on output, error handling, or integration with siblings, leaving room for improvement in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'memory_id' parameter as a UUID. The description adds no additional meaning beyond what the schema provides, such as format details or usage examples, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and resource 'specific memory by ID', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_memory_history' or 'get_memory_relationships' that also retrieve memory-related data, so it doesn't fully distinguish its specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'search_memories_advanced' or 'get_memory_history'. It lacks explicit when/when-not instructions or named alternatives, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_clustersC
Retrieve memory clusters ordered by importance/activity
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of clusters to return |
TDQS
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 mentions ordering by 'importance/activity', which adds some behavioral context, but fails to disclose critical details like whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what 'importance/activity' means operationally. For a retrieval tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('retrieve memory clusters') and adds qualifying details ('ordered by importance/activity') without waste. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by sibling tools and the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'memory cluster' is, how 'importance/activity' is determined, what the return format looks like, or any error conditions. For a tool in a rich ecosystem with no structured support, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'limit' fully documented in the schema. The description adds no additional parameter information beyond what the schema provides, such as typical values for 'limit' or how it interacts with ordering. This meets the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('retrieve') and resource ('memory clusters'), and specifies ordering ('by importance/activity'), which helps distinguish it from siblings like 'get_memory' or 'get_working_memories'. However, it doesn't explicitly differentiate from similar retrieval tools like 'find_similar_clusters' or 'get_cluster_insights', keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With many sibling tools like 'find_similar_clusters', 'get_cluster_insights', and 'search_memories_advanced', there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_healthB
Get overall statistics about memory system health
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 behavioral disclosure. It states 'Get overall statistics,' which implies a read-only operation, but doesn't specify permissions, rate limits, or what 'health' entails (e.g., metrics, status). For a tool with zero annotation coverage, this is insufficient, as it misses key behavioral details like response format or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It is appropriately sized and front-loaded, with every word contributing to clarity. This exemplifies conciseness, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description is minimal but covers the basic purpose. However, it lacks details on what 'health' statistics include or the return format, which could be important for an agent. It's adequate as a starting point but incomplete for full contextual understanding without additional metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter meaning, and it appropriately doesn't mention any. This meets the baseline for tools with no parameters, as it avoids unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('overall statistics about memory system health'), making the purpose understandable. It doesn't specifically differentiate from sibling tools like 'get_memory' or 'get_memory_history', but the focus on 'overall statistics' and 'health' provides some distinction. This is above the vague level but falls short of explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With sibling tools like 'get_memory', 'get_memory_history', and 'get_cluster_insights', there is no indication of context, prerequisites, or exclusions. This leaves the agent without usage direction, scoring low due to the lack of any implied or explicit guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_historyC
Get change history for a specific memory
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | UUID of the memory |
TDQS
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 behavioral disclosure. It states the tool retrieves 'change history', implying a read-only operation that returns historical data, but doesn't specify what 'change history' includes (e.g., timestamps, types of changes, user information), whether it's paginated, requires authentication, has rate limits, or returns errors for invalid IDs. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get change history for a specific memory'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every part of the sentence earns its place by specifying the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple retrieval with one parameter) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'change history' entails (e.g., structured data like logs or raw text), potential return values, error conditions, or behavioral aspects like performance. For a tool with no structured output or annotations, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'memory_id' documented as 'UUID of the memory'. The description doesn't add any meaning beyond this (e.g., format examples, where to find the ID, or validation rules). With high schema coverage, the baseline is 3, as the schema does the heavy lifting and the description doesn't compensate with extra details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get change history for a specific memory', which includes a specific verb ('Get') and resource ('change history for a specific memory'). It distinguishes from siblings like 'get_memory' (which retrieves the memory itself) and 'get_memory_relationships' (which focuses on connections), but doesn't explicitly differentiate from all siblings (e.g., 'get_memory_health' might also involve historical data). The description is clear but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing a valid memory_id), exclusions (e.g., not for real-time updates), or comparisons to siblings like 'get_memory' (for current state) or 'search_memories_advanced' (for broader queries). Usage is implied by the name and purpose, but no explicit context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_relationshipsB
Get relationships for a specific memory
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | UUID of the memory | |
| direction | No | Direction of relationships to retrieve | both |
| relationship_type | No | Filter by relationship type (optional) |
TDQS
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 behavioral disclosure. It states what the tool does but doesn't describe how it behaves—such as whether it returns all relationships or paginated results, error handling for invalid memory IDs, or performance characteristics. This leaves significant gaps for a tool with potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the essential action and target, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose but lacks details on usage context, behavioral traits, and output format, which are important for effective tool invocation in this memory system with many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters (memory_id, direction, relationship_type) with descriptions and defaults. The description adds no additional semantic context beyond implying a retrieval action, which doesn't enhance understanding of the parameters. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and target ('relationships for a specific memory'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'find_related_memories' or 'get_memory_history', which might also retrieve relationship-related data, so it doesn't achieve full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With siblings like 'find_related_memories' and 'get_memory_history' that might overlap in functionality, there's no indication of context, prerequisites, or exclusions for choosing this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_working_memoriesC
Retrieve current working memories
| Name | Required | Description | Default |
|---|---|---|---|
| include_expired | No | Include expired working memories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read operation ('retrieve') but doesn't disclose behavioral traits like permissions needed, rate limits, pagination, or what 'current' means operationally. This leaves gaps in understanding how the tool behaves beyond basic retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be more specific to improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a vague description, this is incomplete for a retrieval tool among many siblings. The agent lacks critical context on what 'current' means, the return format, or how this differs from other memory tools, making it hard to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter 'include_expired'. The description adds no parameter semantics beyond what's in the schema, meeting the baseline of 3 for high coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Retrieve current working memories' states a clear verb ('retrieve') and resource ('working memories'), but it's vague about scope—'current' is ambiguous (active? recent?). It doesn't distinguish from siblings like 'get_memory', 'search_memories_advanced', or 'get_memory_history', leaving the agent unsure when to choose this tool over alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus siblings. With many similar tools (e.g., 'get_memory', 'search_memories_advanced'), the description lacks context, prerequisites, or exclusions, forcing the agent to guess based on names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_worldviewB
Retrieve current worldview primitives and beliefs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 behavioral disclosure. While 'Retrieve' implies a read-only operation, it doesn't specify whether this requires permissions, how current the data is, potential rate limits, or what format the output takes. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a zero-parameter tool and front-loads the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description provides the minimum viable information about what the tool retrieves. However, for a tool that presumably returns important system state information, more context about what 'worldview primitives and beliefs' encompass and how this differs from related sibling tools would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters, though it could potentially clarify that no filtering or configuration options are available for this retrieval operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and the target ('current worldview primitives and beliefs'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_identity_core' or 'get_active_themes', which might retrieve related but different aspects of the system's state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With sibling tools like 'get_identity_core' and 'get_active_themes' that might retrieve overlapping or related information, there's no indication of when this specific tool is appropriate or what distinguishes it from those options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prune_memoriesC
Permanently delete memories based on criteria
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is 'permanently delete', which implies a destructive operation, but doesn't mention permissions required, whether deletions are reversible, rate limits, or what happens to related data. The description is minimal and lacks critical behavioral context for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, no output schema, and a nested parameter object, the description is inadequate. It lacks details on behavioral traits, usage context, parameter meanings, and expected outcomes. Given the complexity and potential impact, more completeness is needed to guide safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'based on criteria', which aligns with the input schema's single nested object parameter named 'criteria'. However, with 0% schema description coverage (the schema has no top-level description), the description doesn't add meaningful details about what criteria are available or how they work. It provides minimal value beyond what's implied by the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('permanently delete') and resource ('memories'), and specifies the operation is based on criteria. However, it doesn't distinguish this tool from sibling tools like 'archive_old_memories' or 'cleanup_expired_working_memory', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'archive_old_memories' or 'cleanup_expired_working_memory'. It mentions criteria-based deletion but doesn't specify scenarios, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memories_advancedC
Advanced memory search with multiple criteria
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it's an 'advanced' search without detailing behavioral traits like permissions, rate limits, pagination, or what 'advanced' entails (e.g., combining text and vector searches). It lacks critical information for a mutation-free but complex search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple search criteria, nested objects) and lack of annotations and output schema, the description is insufficient. It doesn't explain return values, error handling, or how criteria interact, leaving significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'multiple criteria', which aligns with the input schema's single 'criteria' parameter containing nested properties for text, embedding, types, importance, date range, and limit. Since there's only 1 parameter and schema description coverage is 0%, the description adds meaningful context by hinting at the parameter's purpose, though it doesn't detail specific criteria.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Advanced memory search with multiple criteria' states the tool's purpose (searching memories) and hints at advanced functionality, but it's vague about what makes it 'advanced' compared to siblings like 'search_memories_similarity' and 'search_memories_text'. It doesn't specify the verb beyond 'search' or distinguish clearly from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus sibling tools like 'search_memories_similarity' or 'search_memories_text'. The description implies it supports multiple criteria but doesn't specify contexts, prerequisites, or exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memories_similarityC
Search memories by vector similarity
| Name | Required | Description | Default |
|---|---|---|---|
| embedding | Yes | Query embedding vector | |
| limit | No | Maximum number of results | |
| threshold | No | Minimum similarity threshold |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the search method but doesn't describe what 'memories' are in this context, how results are returned (format, ordering), whether this is a read-only operation, or any performance/rate limit considerations. For a search tool with 3 parameters, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a search tool and front-loads the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't explain what constitutes a 'memory' in this system, what the search returns (e.g., memory objects with scores), or how similarity is calculated. For a vector similarity search tool, this leaves too much contextual ambiguity for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (embedding, limit, threshold) with descriptions. The description adds no additional parameter semantics beyond implying that 'embedding' is used for 'vector similarity' search, which is already clear from the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search memories by vector similarity' clearly states the verb (search) and resource (memories) with the specific method (vector similarity). It distinguishes from sibling tools like 'search_memories_text' and 'search_memories_advanced' by specifying the similarity-based approach, though it doesn't fully explain how it differs operationally from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'search_memories_text' or 'search_memories_advanced'. It mentions 'vector similarity' which implies usage with embeddings, but doesn't explicitly state prerequisites, exclusions, or comparative contexts with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memories_textC
Search memories by text content using full-text search
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Text query to search for | |
| limit | No | Maximum number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'full-text search' which implies some behavioral context about search methodology, but doesn't disclose important traits like whether this is a read-only operation, what permissions might be needed, how results are ranked/returned, or any rate limits. The description adds minimal behavioral insight beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a search tool and front-loads the essential information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what constitutes a 'memory', what fields are searched, how results are structured, or what 'full-text search' entails operationally. Given the complexity of search operations and lack of structured metadata, more context is needed for the agent to use this effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters ('query' and 'limit'). The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain query syntax, search scope, or result format. Baseline 3 is appropriate when schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and resource ('memories by text content'), specifying it uses 'full-text search'. It distinguishes from some siblings like 'get_memory' (retrieval) and 'create_memory' (creation), but doesn't explicitly differentiate from 'search_memories_advanced' or 'search_memories_similarity' which are closely related search variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention when to choose this over 'search_memories_advanced' or 'search_memories_similarity', nor does it specify prerequisites or appropriate contexts for text-based searching versus other memory access methods.
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. Dates show when Glama detected each change.
24 tool updates
v1.0.0- First observed
activate_cluster - First observed
archive_old_memories - First observed
cleanup_expired_working_memory - First observed
consolidate_working_memory - First observed
create_memory - First observed
create_memory_cluster - First observed
create_memory_relationship - First observed
create_working_memory - First observed
find_related_memories - First observed
find_similar_clusters - First observed
get_active_themes - First observed
get_cluster_insights - First observed
get_identity_core - First observed
get_memory - First observed
get_memory_clusters - First observed
get_memory_health - First observed
get_memory_history - First observed
get_memory_relationships - First observed
get_working_memories - First observed
get_worldview - First observed
prune_memories - First observed
search_memories_advanced - First observed
search_memories_similarity - First observed
search_memories_text
TDQS
Most tools have distinct purposes, but some overlap exists in search functionality (search_memories_advanced, search_memories_similarity, search_memories_text) which could cause confusion about which to use for different query types. The memory retrieval tools (get_memory, get_memory_clusters, get_working_memories) are well differentiated by their specific targets.
All tool names follow a consistent verb_noun pattern with snake_case throughout, such as 'activate_cluster', 'create_memory', and 'get_memory_health'. This predictability makes the tool set easy to navigate and understand at a glance.
With 24 tools, the count feels heavy for a memory management system, bordering on excessive. While the domain is complex, some tools could potentially be consolidated (e.g., the three search variants) to reduce cognitive load without losing functionality.
The tool set provides comprehensive coverage for memory lifecycle management, including creation, retrieval, search, relationships, clustering, maintenance (cleanup, archive, prune), and analytics (health, insights, themes). No obvious gaps are present for the stated AGI memory domain.
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/randyandrade/agi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server