Skip to main content
Glama

MCP Pickaxe Server

Architecture

npm version CI License: MIT MCP

An MCP (Model Context Protocol) server that connects AI assistants like Claude to the Pickaxe platform. Manage your AI agents, knowledge bases, users, and analytics directly through natural language.

Why Use This?

If you're building AI agents on Pickaxe, this MCP server lets you:

  • Analyze agent conversations - Review chat history to identify knowledge gaps and improve agent performance

  • Manage knowledge bases - Create, update, and connect documents to your agents without leaving your AI workflow

  • Handle user management - Create users, manage access, send invitations, and track usage

  • Work across multiple studios - Seamlessly switch between different Pickaxe studios in a single session

  • Automate workflows - Let Claude handle repetitive Pickaxe admin tasks

Related MCP server: Forge MCP Server

Features

Category

Tools

Studios

List configured studios, switch between them

Chat History

Fetch and analyze agent conversation logs

Documents

Create, list, get, delete, connect/disconnect to agents

Users

Create, list, get, update, delete, invite

Products

List available products and bundles

Memory

List memory schemas, retrieve user memories

Prerequisites

  • Node.js 18+

  • A Pickaxe account with API access

  • Your Pickaxe Studio API key(s)

Installation

npx mcp-pickaxe

Or install globally:

npm install -g mcp-pickaxe

Option 2: Clone and Build

git clone https://github.com/aplaceforallmystuff/mcp-pickaxe.git
cd mcp-pickaxe
npm install
npm run build

Configuration

1. Get Your Pickaxe API Key

  1. Log in to Pickaxe Studio

  2. Navigate to Settings > API

  3. Copy your Studio API key (starts with studio-)

2. Configure Your MCP Client

For Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pickaxe": {
      "command": "node",
      "args": ["/path/to/mcp-pickaxe/dist/index.js"],
      "env": {
        "PICKAXE_STUDIO_MAIN": "studio-your-api-key-here"
      }
    }
  }
}

For Claude Code

Add to ~/.claude.json:

{
  "mcpServers": {
    "pickaxe": {
      "command": "node",
      "args": ["/path/to/mcp-pickaxe/dist/index.js"],
      "env": {
        "PICKAXE_STUDIO_MAIN": "studio-your-api-key-here"
      }
    }
  }
}

Multi-Studio Configuration

To work with multiple Pickaxe studios, add multiple environment variables:

{
  "env": {
    "PICKAXE_STUDIO_PRODUCTION": "studio-xxx-xxx-xxx",
    "PICKAXE_STUDIO_STAGING": "studio-yyy-yyy-yyy",
    "PICKAXE_STUDIO_DEV": "studio-zzz-zzz-zzz",
    "PICKAXE_DEFAULT_STUDIO": "PRODUCTION"
  }
}

Then specify which studio to use in your requests:

  • If you set PICKAXE_DEFAULT_STUDIO, that studio is used when none is specified

  • If only one studio is configured, it's used automatically

  • Otherwise, pass studio="STAGING" (or similar) to any tool

Use Cases

These are real workflows built with mcp-pickaxe in production environments.

1. Security Monitoring with n8n

Scenario: Detect prompt injection attempts across 29+ AI agents in real-time.

Implementation: An n8n workflow polls chat_history hourly for all agents, runs messages against injection detection patterns (stored in Notion), and routes alerts by severity:

  • HIGH/CRITICAL → Telegram alert + Notion log

  • LOW/MEDIUM → Notion log only

n8n Schedule (hourly)
    → Fetch patterns from Notion
    → Loop through 29 pickaxe IDs
    → Fetch chat_history for each
    → Detect injections (regex patterns)
    → Route by severity → Alert/Log

Tools used: chat_history, studios_list

Result: Real-time security monitoring across an entire studio with dynamic pattern management and severity-based alerting.

2. Knowledge Base Auto-Research Pipeline

Scenario: Automatically fact-check and maintain 31+ knowledge base articles.

Implementation: An n8n workflow queries KB articles from Notion, extracts key claims, fact-checks via Perplexity API, classifies changes by risk level, and routes to auto-update or human review.

Daily Schedule (2am)
    → Query KB articles from Notion
    → Filter by day (hash-based, ~1/7th daily)
    → Extract key claims
    → Perplexity fact-check
    → Classify: none/low/major risk
    → Route: auto-update or create review task

Tools used: doc_list, doc_get, doc_create, doc_connect

Result: KB content stays current with automated fact-checking and human-in-the-loop for major changes.

3. Agent Performance Review

Scenario: Quarterly review of a training studio to identify KB gaps and user pain points.

Workflow:

1. "Fetch chat history from my training agents"
2. "Analyze: which questions got unclear or uncertain responses?"
3. "List all KB documents - which topics are missing?"
4. "Check user stats - who's most active, who's churning?"
5. "Create KB documents addressing the top 3 gaps"
6. "Connect new documents to the relevant agents"

Tools used: chat_history, doc_list, doc_create, doc_connect, user_list

Result: Data-driven KB improvements based on actual user conversations rather than guesswork.

4. Multi-Studio Operations

Scenario: Managing multiple Pickaxe studios from a single Claude session.

Configuration:

{
  "env": {
    "PICKAXE_STUDIO_PRODUCTION": "studio-xxx",
    "PICKAXE_STUDIO_STAGING": "studio-yyy",
    "PICKAXE_STUDIO_DEV": "studio-zzz",
    "PICKAXE_DEFAULT_STUDIO": "PRODUCTION"
  }
}

Workflow:

1. "List users in PRODUCTION - how many signups this month?"
2. "Switch to STAGING - list products"
3. "Compare KB document counts across all studios"
4. "Find which studio has the most chat activity"

Tools used: studios_list, user_list, doc_list, products_list

Result: Cross-studio visibility without switching contexts or API keys manually.

5. User Memory Auditing

Scenario: Review what your agents remember about users for personalization and privacy compliance.

Workflow:

1. "List all memory schemas defined in the studio"
2. "Get memories for user@example.com"
3. "What does the system know about this user's situation?"
4. "Which memory fields are most populated across users?"

Example output:

User: maria.example@email.com
Nickname: "Cautious Educator from Madrid"
Summary: "Teaching [language] for [platform] at low hourly rate,
         considering self-employment status due to
         uncertain income"
Memories: 1 stored

Tools used: memory_list, memory_get_user, user_list

Result: Visibility into personalization data for both product improvement and GDPR compliance.


Quick Start Examples

Once configured, you can interact with Pickaxe through natural language:

Analyze Agent Performance

"Show me the last 20 conversations from my support agent"

"What questions are users asking that my agent can't answer?"

Manage Knowledge Base

"Create a new document called 'FAQ' with this content: [your content]"

"Connect the FAQ document to my customer support agent"

"List all documents in my knowledge base"

User Management

"Show me all users and their usage stats"

"Create a new user with email user@example.com and give them access to the Pro product"

"Send invitations to these emails: [list of emails]"

Multi-Studio Operations

"List all users in my staging studio"

"Compare the documents between production and staging"

Available Tools

Studio Management

  • studios_list - List all configured studios and the current default

Chat History

  • chat_history - Fetch conversation history for an agent

    • Parameters: pickaxeId, skip, limit, format ("messages" or "raw"), studio

Document Management

  • doc_create - Create document from content or URL

  • doc_list - List all documents (with pagination)

  • doc_get - Get a specific document

  • doc_delete - Delete a document

  • doc_connect - Link document to an agent

  • doc_disconnect - Unlink document from an agent

User Management

  • user_list - List all users with access and usage info

  • user_get - Get a specific user by email

  • user_create - Create a new user

  • user_update - Update user details, products, or usage

  • user_delete - Delete a user

  • user_invite - Send email invitations

Products

  • products_list - List available products/bundles

Memory

  • memory_list - List memory schemas

  • memory_get_user - Get collected memories for a user

Development

# Run in development mode (auto-reloads)
npm run dev

# Build for production
npm run build

# Run the built version
npm start

Troubleshooting

"No Pickaxe studios configured"

Ensure you have at least one PICKAXE_STUDIO_* environment variable set in your MCP config.

"Studio not found"

Check that the studio name matches exactly (case-insensitive). Run studios_list to see available options.

"Pickaxe API error (401)"

Your API key is invalid or expired. Get a new one from Pickaxe Studio settings.

"Pickaxe API error (403)"

Your API key doesn't have permission for this operation. Check your Pickaxe account permissions.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.

Available Tools

17 tools
chat_historyB

Fetch conversation history for a Pickaxe agent. Use to analyze user questions, identify KB gaps, and review agent performance.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
pickaxeIdYesThe Pickaxe agent ID (from the agent URL or config)
skipNoNumber of conversations to skip (for pagination). Default: 0
limitNoMaximum conversations to return. Default: 10, Max: 100
formatNoOutput format. 'messages' is human-readable, 'raw' includes metadata. Default: messages

TDQS

B3.2/5.0
Behavior2/5

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. While it mentions the tool fetches history and suggests use cases, it doesn't describe important behavioral aspects: whether this requires authentication, rate limits, what the return format looks like (beyond the 'format' parameter), pagination behavior beyond skip/limit parameters, or error conditions. For a tool with 5 parameters and no annotation coverage, this leaves significant gaps.

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

Conciseness4/5

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

The description is appropriately concise with two sentences that efficiently state the core purpose and three use cases. It's front-loaded with the main action ('Fetch conversation history') and wastes no words. However, the second sentence could be slightly more structured by separating the use cases with semicolons or bullet points for even clearer scanning.

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

Completeness3/5

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

Given the tool has 5 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It clearly states what the tool does and suggests use cases, but doesn't address behavioral aspects like authentication needs, rate limits, error handling, or what the return data structure looks like. For a data retrieval tool with multiple parameters, more complete behavioral context would be helpful despite the good schema documentation.

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

Parameters3/5

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

The schema description coverage is 100%, with all parameters well-documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema - it doesn't explain parameter relationships, provide examples, or clarify edge cases. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't need to given the comprehensive schema documentation.

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

Purpose4/5

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

The description clearly states the action ('Fetch conversation history') and resource ('for a Pickaxe agent'), making the purpose immediately understandable. It distinguishes this tool from sibling tools (which are all about docs, memory, products, studios, or users) by focusing on chat history. However, it doesn't explicitly differentiate from potential non-existent siblings like 'chat_analytics' or 'chat_summary'.

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

Usage Guidelines3/5

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

The description provides implied usage context by listing three use cases: 'analyze user questions, identify KB gaps, and review agent performance.' This gives some guidance on when this tool would be appropriate. However, it doesn't explicitly state when NOT to use it or mention alternatives among the sibling tools (none of which appear to be direct alternatives for fetching chat history).

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

doc_connectA

Connect/link a document to a Pickaxe agent, adding it to the agent's knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
documentIdYesThe document ID to connect
pickaxeIdYesThe Pickaxe agent ID to connect the document to

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a mutation operation ('connect/link'), implying it modifies data, but does not disclose behavioral traits such as required permissions, whether the connection is reversible, error handling, or rate limits. The description adds minimal context 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.

Conciseness5/5

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 purpose without unnecessary words. Every part earns its place by specifying the action, resource, target, and outcome, 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.

Completeness3/5

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

Given the tool's complexity (mutation with 3 parameters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavior, output, or error handling, leaving gaps that could hinder an agent's ability to use it correctly in all contexts.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (studio, documentId, pickaxeId) with descriptions and defaults. The description does not add any meaning beyond what the schema provides, such as explaining parameter interactions or constraints, so it meets the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the specific action ('connect/link'), resource ('document'), and target ('Pickaxe agent'), distinguishing it from siblings like doc_disconnect (opposite action) and doc_create/delete (different document operations). It explicitly mentions adding to the agent's knowledge base, which clarifies the purpose beyond just linking.

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

Usage Guidelines3/5

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

The description implies usage by specifying the action and target, but does not explicitly state when to use this tool versus alternatives like doc_disconnect or prerequisites. It mentions adding to a knowledge base, which provides some context, but lacks explicit guidance on scenarios or exclusions.

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

doc_createB

Create a new document in Pickaxe knowledge base. Can create from raw content or scrape a website URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
nameYesName/title of the document
rawContentNoRaw text content for the document. Use this OR website, not both.
websiteNoURL to scrape as document content. Use this OR rawContent, not both.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool creates documents but does not disclose behavioral traits such as required permissions, whether creation is idempotent, error handling, or rate limits. The mention of content sources adds minimal context, but critical operational details are missing for a mutation tool.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose and followed by a concise detail on content sources. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness3/5

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

Given no annotations and no output schema, the description is minimally adequate for a creation tool but lacks depth. It covers the what and how (content sources) but omits behavioral aspects like permissions, side effects, or response format. For a 4-parameter mutation tool, more context would be needed for a higher score.

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

Parameters3/5

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

Schema description coverage is 100%, providing clear documentation for all parameters. The description adds value by clarifying the mutual exclusivity of rawContent and website ('Use this OR rawContent, not both'), which is not in the schema. However, it does not elaborate on parameter interactions or provide additional semantic context beyond the schema's basics.

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

Purpose4/5

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

The description clearly states the action ('Create a new document') and resource ('in Pickaxe knowledge base'), with additional detail about content sources ('from raw content or scrape a website URL'). It distinguishes from siblings like doc_delete (deletion) and doc_get (retrieval), though not explicitly. A 5 would require 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.

Usage Guidelines3/5

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

The description implies usage for document creation, but lacks explicit guidance on when to use this tool versus alternatives like doc_connect or doc_list. It mentions content source options (rawContent or website), which provides some context, but does not specify prerequisites, constraints, or scenarios where other tools might be more appropriate.

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

doc_deleteB

Delete a document from Pickaxe. This removes it from all connected agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
documentIdYesThe document ID to delete

TDQS

B3.2/5.0
Behavior2/5

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 tool deletes and removes from all agents, which implies a destructive, irreversible action, but doesn't mention permissions needed, error conditions, confirmation requirements, or what happens to associated data. For a deletion 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.

Conciseness5/5

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

The description is two concise sentences with zero waste. The first sentence states the core action, and the second adds critical scope information. Every word earns its place, and it's front-loaded with the primary purpose.

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

Completeness2/5

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

Given this is a destructive deletion tool with no annotations and no output schema, the description is incomplete. It doesn't address permissions, side effects, error handling, or return values. For a high-stakes operation like deletion, more contextual information is needed to guide safe usage.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters (studio and documentId). The description adds no additional parameter information beyond what's in the schema, such as format details for documentId or implications of studio choice. Baseline 3 is appropriate when the schema does all the work.

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

Purpose5/5

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

The description clearly states the specific action ('Delete') and resource ('a document from Pickaxe'), with additional scope information ('removes it from all connected agents') that distinguishes it from potential siblings like doc_disconnect. It provides a complete picture of what the tool does.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like doc_disconnect (which might remove connections without deletion) or user_delete (for different resources). It mentions the effect but not the appropriate context or prerequisites for invoking this destructive operation.

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

doc_disconnectB

Disconnect/unlink a document from a Pickaxe agent, removing it from the agent's knowledge base.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
documentIdYesThe document ID to disconnect
pickaxeIdYesThe Pickaxe agent ID to disconnect the document from

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action is to 'disconnect/unlink' and remove from knowledge base, implying a mutation, but doesn't disclose behavioral traits like whether this is reversible, requires specific permissions, has side effects on the document or agent, or what the response looks like (e.g., success/failure).

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action and effect. Every word earns its place, with no redundancy or unnecessary details, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity (a mutation tool with no annotations and no output schema), the description is incomplete. It lacks information on behavioral context (e.g., reversibility, permissions), response format, and usage guidelines, leaving gaps for an AI agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (studio, documentId, pickaxeId) with their types and descriptions. The description doesn't add any meaning beyond what the schema provides, such as explaining relationships between parameters (e.g., documentId and pickaxeId must correspond to an existing link).

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

Purpose5/5

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

The description clearly states the action ('disconnect/unlink'), the resource ('a document from a Pickaxe agent'), and the effect ('removing it from the agent's knowledge base'). It distinguishes from siblings like doc_connect (linking) and doc_delete (deleting the document entirely).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the document must be linked first), exclusions, or comparisons to siblings like doc_delete (which might remove the document entirely versus just unlinking).

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

doc_getB

Retrieve a specific document by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
documentIdYesThe document ID to retrieve

TDQS

B3.1/5.0
Behavior2/5

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. While 'Retrieve' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns structured data, or handles errors. For a tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's purpose without any unnecessary words or structural fluff. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.

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

Completeness3/5

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

For a simple retrieval tool with two parameters (fully documented in the schema) and no output schema, the description is minimally adequate. However, it lacks context about authentication needs, error handling, or return format, which would be helpful given the absence of annotations and output schema. It meets basic requirements but leaves room for improvement.

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

Parameters3/5

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

The description mentions retrieving by 'ID', which aligns with the 'documentId' parameter in the schema. However, with 100% schema description coverage, the schema already fully documents both parameters (including the 'studio' parameter with its default value and options). The description adds minimal value beyond what's already in the structured schema.

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

Purpose4/5

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

The description clearly states the action ('Retrieve') and resource ('a specific document by ID'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'doc_get' vs 'doc_list' or 'user_get', which would require explicit comparison to achieve 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'doc_list' (for listing documents) or 'user_get' (for retrieving user data). There's no mention of prerequisites, context requirements, or any explicit 'when' or 'when not' instructions, leaving usage decisions entirely to inference.

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

doc_listB

List all documents in the Pickaxe studio with pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
skipNoNumber of documents to skip. Default: 0
takeNoNumber of documents to return. Default: 10

TDQS

B3.1/5.0
Behavior2/5

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 mentions pagination, which is useful, but doesn't describe what 'documents' contain, the return format, error conditions, rate limits, authentication requirements, or whether this is a read-only operation. For a list 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.

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a list operation 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.

Completeness3/5

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

Given the tool's moderate complexity (list operation with pagination), no annotations, and no output schema, the description is minimally adequate but incomplete. It covers the basic action and mentions pagination, but doesn't address what constitutes a 'document', return format, error handling, or relationship to sibling tools. For a tool with no structured behavioral hints, it should provide more context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents all three parameters. The description adds no additional parameter information beyond mentioning 'pagination' generally, which aligns with skip/take parameters but provides no extra semantic context. 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.

Purpose4/5

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

The description clearly states the action ('List all documents') and resource ('in the Pickaxe studio'), making the purpose immediately understandable. It distinguishes from siblings like doc_get (retrieve specific document) and doc_create/delete (mutations). However, it doesn't explicitly differentiate from other list operations like studios_list or products_list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose doc_list over doc_get for retrieving documents, or how it relates to other list operations like studios_list. There's no context about prerequisites, permissions, or typical use cases.

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

memory_get_userC

Get all collected memories for a specific user.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailYesThe user's email address
memoryIdNoOptional: specific memory schema ID to filter by
skipNoNumber of memories to skip. Default: 0
takeNoNumber of memories to return. Default: 10

TDQS

C2.9/5.0
Behavior2/5

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 it's a 'Get' operation, implying read-only behavior, but doesn't mention permissions, rate limits, pagination details (beyond implied by skip/take), or what 'collected memories' entails. This leaves significant gaps for a tool with 5 parameters.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for its function, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity (5 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain what 'memories' are, the return format, error conditions, or behavioral nuances like pagination limits. For a data retrieval tool with multiple parameters, more context is needed to guide effective use.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional semantic context beyond implying filtering by user and memoryId, which is already covered in the schema. 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.

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('collected memories for a specific user'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'memory_list' or 'user_get', which might have overlapping functionality, so it doesn't reach the highest score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'memory_list' or 'user_get'. It lacks context about prerequisites, exclusions, or specific scenarios, leaving the agent with minimal usage direction.

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

memory_listB

List all memory schemas defined in the studio.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
skipNoNumber of memories to skip. Default: 0
takeNoNumber of memories to return. Default: 10

TDQS

B3.1/5.0
Behavior2/5

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 ('List') but fails to describe key behaviors such as pagination mechanics (implied by 'skip' and 'take' parameters), return format, error conditions, or authentication requirements. This leaves significant gaps for a tool with three parameters.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse and understand immediately.

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

Completeness3/5

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

For a list operation with no annotations and no output schema, the description is minimally adequate. It specifies the resource ('memory schemas') and scope ('in the studio'), but lacks details on output structure, pagination behavior, or error handling. Given the tool's moderate complexity (three parameters), it should provide more context to be fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema, but since the schema is comprehensive, a baseline score of 3 is appropriate as the description doesn't need to compensate.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all memory schemas defined in the studio'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'memory_get_user' or 'doc_list', but the specificity of 'memory schemas' provides some implicit distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'memory_get_user' or 'doc_list'. It lacks any mention of prerequisites, exclusions, or contextual triggers for selection, leaving the agent to infer usage based solely on the tool name and description.

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

products_listB

List all available products/bundles in the Pickaxe studio.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION

TDQS

B3.1/5.0
Behavior2/5

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 this is a list operation but doesn't describe what 'list all' entails (e.g., pagination, sorting, filtering capabilities), whether it requires authentication, or what format the output takes. The description is minimal and lacks important 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.

Conciseness5/5

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 zero wasted words. It's appropriately sized for a simple list operation and is perfectly front-loaded with the core purpose.

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

Completeness3/5

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

For a simple list tool with one optional parameter and no output schema, the description is minimally adequate. However, without annotations and with no output schema, it should ideally provide more context about what the tool returns and any behavioral constraints. The description covers the basic purpose but leaves gaps in usage and behavioral understanding.

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

Parameters3/5

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

The schema description coverage is 100%, with the single parameter 'studio' fully documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline expectation without providing extra value.

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

Purpose4/5

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

The description clearly states the action ('List') and resource ('products/bundles in the Pickaxe studio'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'doc_list' or 'studios_list' beyond mentioning the specific resource type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or compare it to similar sibling tools like 'doc_list' or 'studios_list' that also list resources.

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

studios_listA

List all configured Pickaxe studios and the current default.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but does not cover aspects like pagination, rate limits, authentication requirements, or error handling. This is a significant gap for a 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.

Conciseness5/5

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

The description is a single, well-structured sentence that is front-loaded with the main action ('List all configured Pickaxe studios') and adds a useful detail ('and the current default'). There is no wasted verbiage, making it highly efficient.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is adequate but has clear gaps. It explains what the tool does but lacks behavioral context (e.g., how results are formatted, any limitations). Without annotations or an output schema, the description should do more to compensate, but it meets the minimum viable threshold.

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

Parameters4/5

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

The tool has 0 parameters, and the schema description coverage is 100% (as there are no parameters to describe). The description does not need to add parameter details, so a baseline score of 4 is appropriate, as it efficiently avoids redundancy.

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

Purpose5/5

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

The description clearly states the specific action ('List all configured Pickaxe studios') and the resource ('studios'), and includes an additional output detail ('and the current default'). It distinguishes itself from sibling tools like 'doc_list' or 'user_list' by focusing specifically on studios.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or comparisons to sibling tools, leaving the agent to infer usage based on the tool name alone.

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

user_createC

Create a new user with optional product access.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailYesUser's email address (required)
nameNoUser's display name
passwordNoUser's password (optional - they can reset)
productsNoArray of product IDs to grant access to
isEmailVerifiedNoMark email as verified. Default: false

TDQS

C2.9/5.0
Behavior2/5

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. 'Create a new user' implies a write/mutation operation, but the description doesn't mention authentication requirements, permissions needed, whether the operation is idempotent, what happens on duplicate emails, or what the response contains. This leaves significant gaps for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for the tool's purpose with no wasted words or unnecessary elaboration.

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

Completeness2/5

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

For a user creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., does it return the user object? send a confirmation email?), what validation occurs, or error conditions. The mention of 'optional product access' is helpful but doesn't compensate for the broader context gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema by mentioning 'optional product access' which corresponds to the 'products' parameter, but doesn't provide additional context about product IDs or how access is granted. Baseline 3 is appropriate 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.

Purpose4/5

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

The description clearly states the action ('Create a new user') and resource ('user'), and mentions optional product access which adds specificity. However, it doesn't explicitly differentiate from sibling tools like user_invite or user_update, which would require more precise language about when to use each.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like user_invite or user_update. It mentions 'optional product access' but doesn't explain when this feature is relevant or what prerequisites exist for user creation.

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

user_deleteC

Delete a user by email.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailYesThe user's email address to delete

TDQS

C2.9/5.0
Behavior2/5

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 tool deletes a user but fails to mention critical details like whether this action is reversible, what permissions are required, what happens to associated data, or any rate limits. This leaves significant gaps for a destructive operation.

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

Conciseness5/5

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

The description is a single, direct sentence with zero wasted words, making it highly efficient and front-loaded. It immediately conveys the core action without unnecessary elaboration.

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

Completeness2/5

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

For a destructive tool with no annotations and no output schema, the description is inadequate. It lacks essential context such as the tool's impact, return values, error conditions, or how it differs from sibling tools, leaving the agent with insufficient information for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters ('studio' and 'email') with their types, descriptions, and requirements. The description adds no additional parameter information beyond what the schema provides, which is acceptable but not additive.

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

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('a user by email'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'doc_delete' or 'user_update' beyond the resource type, which prevents 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'user_update' or 'doc_delete', nor does it mention prerequisites, permissions, or consequences. It simply states what the tool does without context for selection.

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

user_getC

Get details for a specific user by email.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailYesThe user's email address

TDQS

C2.9/5.0
Behavior2/5

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 it's a read operation ('Get'), implying non-destructive behavior, but doesn't mention authentication requirements, rate limits, error conditions, or what 'details' include. For a user lookup 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple lookup tool. Every word earns its place.

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

Completeness2/5

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

For a user retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'details' include, what format they're returned in, or potential error cases. While the schema covers inputs well, the overall context lacks sufficient information for confident tool invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters (studio with default and enum values, email as required). The description adds no parameter-specific information beyond what's in the schema - it mentions 'by email' which is already covered. Baseline 3 is appropriate when schema does all the work.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('details for a specific user'), specifying retrieval by email. It distinguishes from siblings like user_list (list all users) and user_create/update/delete (write operations), though it doesn't explicitly name these alternatives. The purpose is specific 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose user_get over user_list for a single user, or when to use memory_get_user for user-related memory retrieval. There are no prerequisites, exclusions, or contextual usage hints provided.

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

user_inviteC

Send email invitations to new users with optional product access.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailsYesArray of email addresses to invite
productIdsNoArray of product IDs to grant access to

TDQS

C2.9/5.0
Behavior2/5

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. While it indicates this sends emails (an external action) and grants product access (a permission change), it doesn't disclose important behavioral aspects like whether this requires admin permissions, what happens if emails are invalid, whether invitations can be resent, rate limits, or what the expected response looks like. For a tool with mutation capabilities and no 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.

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's front-loaded with the main action and includes the key qualification about optional product access. Every word earns its place in this concise formulation.

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

Completeness2/5

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

For a tool that performs user invitations (a mutation with external email effects) with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after invocation - whether users receive immediate emails, what the invitation contains, whether there are confirmation steps, or what the tool returns. The description should provide more context about this non-trivial operation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'optional product access' which aligns with the optional productIds parameter, but doesn't provide additional context about parameter interactions, default behaviors, or usage patterns. Baseline 3 is appropriate 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.

Purpose4/5

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

The description clearly states the action ('Send email invitations') and target ('to new users'), with additional context about optional product access. It distinguishes from siblings like user_create or user_update by focusing specifically on invitation functionality rather than user record management. However, it doesn't explicitly differentiate from all sibling tools like user_get or user_list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like user_create (which might create users without invitations) or user_update (which might modify existing users). There's no mention of prerequisites, limitations, or typical scenarios for sending invitations versus other user management operations.

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

user_listA

List all users in the Pickaxe studio with their product access and usage stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
skipNoNumber of users to skip. Default: 0
takeNoNumber of users to return. Default: 10

TDQS

A3.5/5.0
Behavior2/5

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 what the tool does, not behavioral traits. It doesn't disclose whether this is a read-only operation, pagination behavior beyond skip/take parameters, rate limits, authentication needs, or what format the 'usage stats' will be in.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. Every element (verb, resource, attributes) earns its place.

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

Completeness3/5

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

For a list tool with 3 parameters and 100% schema coverage but no annotations or output schema, the description adequately states the purpose but lacks behavioral context. It doesn't explain what 'product access and usage stats' includes or the response format, leaving gaps for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (studio, skip, take) with their types and defaults. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score.

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

Purpose5/5

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

The description clearly states the verb ('List') and resource ('all users in the Pickaxe studio') with specific attributes ('product access and usage stats'). It distinguishes from siblings like user_get (single user) and user_create/delete/update (mutations).

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

Usage Guidelines3/5

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

The description implies usage for listing users with stats, but provides no explicit guidance on when to use this vs. alternatives like user_get for single users or memory_list for memory data. No exclusions or prerequisites are mentioned.

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

user_updateC

Update an existing user's details, products, or usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
studioNoStudio name to use. Available: STAGING, MAIN, DEV, PRODUCTION. Default: PRODUCTION
emailYesThe user's email address
nameNoUpdated display name
productsNoUpdated array of product IDs
currentUsesNoSet current usage count
extraUsesNoAdd extra usage allowance
isEmailVerifiedNoUpdate email verification status

TDQS

C2.9/5.0
Behavior2/5

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 it's an update operation but doesn't cover critical aspects like required permissions, whether changes are reversible, rate limits, or what the response looks like (since there's no output schema). This is a significant gap for a mutation tool with multiple parameters.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity (a mutation tool with 7 parameters, no annotations, and no output schema), the description is incomplete. It lacks behavioral context, usage guidelines, and details on return values, which are essential for an agent to use this tool effectively without trial and error.

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

Parameters3/5

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

The schema description coverage is 100%, so parameters are well-documented in the schema itself. The description adds minimal value beyond implying that 'details, products, or usage' correspond to the parameters, but it doesn't provide additional context like parameter interactions or default behaviors. 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.

Purpose4/5

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

The description clearly states the verb ('Update') and resource ('existing user's details, products, or usage'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'user_create' or 'user_get', which would require mentioning it's for modifying existing users rather than creating new ones or retrieving data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user must exist), exclusions (e.g., not for creating users), or comparisons to siblings like 'user_create' or 'user_get', leaving the agent to infer usage from context alone.

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.

  1. 17 tool updates
    • First observedchat_history
    • First observeddoc_connect
    • First observeddoc_create
    • First observeddoc_delete
    • First observeddoc_disconnect
    • First observeddoc_get
    • First observeddoc_list
    • First observedmemory_get_user
    • First observedmemory_list
    • First observedproducts_list
    • First observedstudios_list
    • First observeduser_create
    • First observeduser_delete
    • First observeduser_get
    • First observeduser_invite
    • First observeduser_list
    • First observeduser_update

TDQS

A3.6/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by resource types (documents, users, memories, products, studios, chat history) and specific actions (create, get, list, update, delete, connect/disconnect), making it easy for an agent to select the correct tool without confusion.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as doc_create, user_list, memory_get_user, and studios_list. All tools use snake_case with clear, descriptive names, providing a predictable and readable structure across the entire set.

Tool Count5/5

With 17 tools, the count is well-scoped for managing a Pickaxe studio's resources. Each tool earns its place by covering essential operations like CRUD for documents and users, plus additional functions for linking, memory, and studio management, without being excessive or insufficient for the domain.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for the Pickaxe domain, including documents, users, memories, products, studios, and chat history. There are no obvious gaps; agents can perform all necessary operations from creation to deletion, with additional utilities like connecting documents and inviting users, ensuring no dead ends in workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI assistants to the complete Salesforge product suite, enabling management of workspaces, contacts, sequences, mailboxes, domains, and more across multiple sales tools.
    88
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to live Purl Studio projects, enabling reading objects, modifying scripts, and setting properties.
    26
    20
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aplaceforallmystuff/mcp-pickaxe'

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