Skip to main content
Glama
meilisearch

Meilisearch MCP Server

Official
by meilisearch

🤔 What is this?

The Meilisearch MCP Server is a Model Context Protocol server that enables any MCP-compatible client (including Claude, OpenAI agents, and other LLMs) to interact with Meilisearch. This stdio-based server allows AI assistants to manage search indices, perform searches, and handle your data through natural conversation.

Why use this?

  • 🤖 Universal Compatibility - Works with any MCP client, not just Claude

  • 🗣️ Natural Language Control - Manage Meilisearch through conversation with any LLM

  • 🚀 Zero Learning Curve - No need to learn Meilisearch's API

  • 🔧 Full Feature Access - All Meilisearch capabilities at your fingertips

  • 🔄 Dynamic Connections - Switch between Meilisearch instances on the fly

  • 📡 stdio Transport - Currently uses stdio; native Meilisearch MCP support coming soon!

Related MCP server: Perplexity MCP Server

✨ Key Features

  • 📊 Index & Document Management - Create, update, and manage search indices

  • 🔍 Smart Search - Search across single or multiple indices with advanced filtering

  • ⚙️ Settings Configuration - Fine-tune search relevancy and performance

  • 📈 Task Monitoring - Track indexing progress and system operations

  • 🔐 API Key Management - Secure access control

  • 🏥 Health Monitoring - Keep tabs on your Meilisearch instance

  • 🧱 Structured Tool Output - Every data-returning tool provides structuredContent alongside text, per the latest MCP specification

  • 🔀 Modern MCP Stack - Built on the official MCP Python SDK v2 (spec 2026-07-28), backwards compatible with older MCP clients

  • 🐍 Python Implementation - TypeScript version also available

🚀 Quick Start

Get up and running in just 3 steps!

1️⃣ Install the package

# Using pip
pip install meilisearch-mcp

# Or using uvx (recommended)
uvx -n meilisearch-mcp

2️⃣ Configure Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "meilisearch": {
      "command": "uvx",
      "args": ["-n", "meilisearch-mcp"]
    }
  }
}

3️⃣ Start Meilisearch

# Using Docker (recommended)
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28

# Or using Homebrew
brew install meilisearch
meilisearch

That's it! Now you can ask your AI assistant to search and manage your Meilisearch data! 🎉

📚 Examples

💬 Talk to your AI assistant naturally:

You: "Create a new index called 'products' with 'id' as the primary key"
AI: I'll create that index for you... ✓ Index 'products' created successfully!

You: "Add some products to the index"
AI: I'll add those products... ✓ Added 5 documents to 'products' index

You: "Search for products under $50 with 'electronics' in the category"
AI: I'll search for those products... Found 12 matching products!

🔍 Advanced Search Example:

You: "Search across all my indices for 'machine learning' and sort by date"
AI: Searching across all indices... Found 47 results from 3 indices:
- 'blog_posts': 23 articles about ML
- 'documentation': 15 technical guides
- 'tutorials': 9 hands-on tutorials

🔧 Installation

Prerequisites

  • Python ≥ 3.10

  • Running Meilisearch instance

  • MCP-compatible client (Claude Desktop, OpenAI agents, etc.)

From PyPI

pip install meilisearch-mcp

From Source (for development)

# Clone repository
git clone https://github.com/meilisearch/meilisearch-mcp.git
cd meilisearch-mcp

# Create virtual environment and install
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

Using Docker

Perfect for containerized environments like n8n workflows!

From Docker Hub

# Pull the latest image
docker pull getmeili/meilisearch-mcp:latest

# Or a specific version
docker pull getmeili/meilisearch-mcp:0.5.0

# Run the container
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  getmeili/meilisearch-mcp:latest

Build from Source

# Build your own image
docker build -t meilisearch-mcp .
docker run -it \
  -e MEILI_HTTP_ADDR=http://your-meilisearch:7700 \
  -e MEILI_MASTER_KEY=your-master-key \
  meilisearch-mcp

Integration with n8n

For n8n workflows, you can use the Docker image directly in your setup:

meilisearch-mcp:
  image: getmeili/meilisearch-mcp:latest
  environment:
    - MEILI_HTTP_ADDR=http://meilisearch:7700
    - MEILI_MASTER_KEY=masterKey

🛠️ What Can You Do?

  • View current connection settings

  • Switch between Meilisearch instances dynamically

  • Update API keys on the fly

  • Create new indices with custom primary keys

  • List all indices with stats

  • Delete indices and their data

  • Get detailed index metrics

  • Add or update documents

  • Retrieve documents with pagination

  • Bulk import data

  • Search with filters, sorting, and facets

  • Multi-index search

  • Semantic search with vectors

  • Hybrid search (keyword + semantic)

  • Configure ranking rules

  • Set up faceting and filtering

  • Manage searchable attributes

  • Customize typo tolerance

  • Create and manage API keys

  • Set granular permissions

  • Monitor key usage

⚠️ Note: While you can add and update hosts and API keys directly in chat for convenience, this approach is primarily designed for development use cases (like connecting to multiple instances on the fly). It does not follow best MCP security practices and should not be used in production environments without proper safeguards.

  • Health checks

  • System statistics

  • Task monitoring

  • Version information

🌍 Environment Variables

Configure default connection settings:

MEILI_HTTP_ADDR=http://localhost:7700  # Default Meilisearch URL
MEILI_MASTER_KEY=your_master_key       # Optional: Default API key

💻 Development

Setting Up Development Environment

  1. Start Meilisearch:

    docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
  2. Install Development Dependencies:

    uv pip install -r requirements-dev.txt
  3. Run Tests:

    python -m pytest tests/ -v
  4. Format Code:

    black src/ tests/

Testing with MCP Inspector

npx @modelcontextprotocol/inspector python -m src.meilisearch_mcp

🤝 Community & Support

We'd love to hear from you! Here's how to get help and connect:

🤗 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Write tests for your changes

  4. Make your changes and run tests

  5. Format your code with black

  6. Commit your changes (git commit -m 'Add amazing feature')

  7. Push to your branch (git push origin feature/amazing-feature)

  8. Open a Pull Request

See our Contributing Guidelines for more details.

📦 Release Process

This project uses automated versioning and publishing. When the version in pyproject.toml changes on the main branch, the package is automatically published to PyPI.

See the Release Process section for detailed instructions.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.



Available Tools

Connection Management

  • get-connection-settings: View current Meilisearch connection URL and API key status

  • update-connection-settings: Update URL and/or API key to connect to a different instance

Index Management

  • create-index: Create a new index with optional primary key

  • list-indexes: List all available indexes

  • delete-index: Delete an existing index and all its documents

  • get-index-metrics: Get detailed metrics for a specific index

Document Operations

  • get-documents: Retrieve documents from an index with pagination

  • add-documents: Add or update documents in an index

  • search: Flexible search across single or multiple indices with filtering and sorting options

Settings Management

  • get-settings: View current settings for an index

  • update-settings: Update index settings (ranking, faceting, etc.)

API Key Management

  • get-keys: List all API keys

  • create-key: Create new API key with specific permissions

  • delete-key: Delete an existing API key

Task Management

  • get-task: Get information about a specific task

  • get-tasks: List tasks with optional filters

  • cancel-tasks: Cancel pending or enqueued tasks

System Monitoring

  • health-check: Basic health check

  • get-health-status: Comprehensive health status

  • get-version: Get Meilisearch version information

  • get-stats: Get database statistics

  • get-system-info: Get system-level information

Development Setup

Prerequisites

  1. Start Meilisearch server:

    # Using Docker (recommended for development)
    docker run -d -p 7700:7700 getmeili/meilisearch:v1.28
    
    # Or using brew (macOS)
    brew install meilisearch
    meilisearch
    
    # Or download from https://github.com/meilisearch/meilisearch/releases
  2. Install development tools:

    # Install uv for Python package management
    pip install uv
    
    # Install Node.js for MCP Inspector testing
    # Visit https://nodejs.org/ or use your package manager

Running Tests

This project includes comprehensive integration tests that verify MCP tool functionality:

# Run all tests
python -m pytest tests/ -v

# Run specific test file
python -m pytest tests/test_mcp_client.py -v

# Run tests with coverage report
python -m pytest --cov=src tests/

# Run tests in watch mode (requires pytest-watch)
pytest-watch tests/

Important: Tests require a running Meilisearch instance on http://localhost:7700.

Code Quality

# Format code with Black
black src/ tests/

# Run type checking (if mypy is configured)
mypy src/

# Lint code (if flake8 is configured)
flake8 src/ tests/

Contributing Guidelines

  1. Fork and clone the repository

  2. Set up development environment following the Development Setup section above

  3. Create a feature branch from main

  4. Write tests first if adding new functionality (Test-Driven Development)

  5. Run tests locally to ensure all tests pass before committing

  6. Format code with Black and ensure code quality

  7. Commit changes with descriptive commit messages

  8. Push to your fork and create a pull request

Development Workflow

# Create feature branch
git checkout -b feature/your-feature-name

# Make your changes, write tests first
# Edit files...

# Run tests to ensure everything works
python -m pytest tests/ -v

# Format code
black src/ tests/

# Commit and push
git add .
git commit -m "Add feature description"
git push origin feature/your-feature-name

Testing Guidelines

  • All new features should include tests

  • Tests should pass before submitting PRs

  • Use descriptive test names and clear assertions

  • Test both success and error cases

  • Ensure Meilisearch is running before running tests

Release Process

This project uses automated versioning and publishing to PyPI. The release process is designed to be simple and automated.

How Releases Work

  1. Automated Publishing: When the version number in pyproject.toml changes on the main branch, a GitHub Action automatically:

    • Builds the Python package

    • Publishes it to PyPI using trusted publishing

    • Creates a new release on GitHub

  2. Version Detection: The workflow compares the current version in pyproject.toml with the previous commit to detect changes

  3. PyPI Publishing: Uses PyPA's official publish action with trusted publishing (no manual API keys needed)

Creating a New Release

To create a new release, follow these steps:

1. Determine Version Number

Follow Semantic Versioning (MAJOR.MINOR.PATCH):

  • PATCH (e.g., 0.4.0 → 0.4.1): Bug fixes, documentation updates, minor improvements

  • MINOR (e.g., 0.4.0 → 0.5.0): New features, new MCP tools, significant enhancements

  • MAJOR (e.g., 0.5.0 → 1.0.0): Breaking changes, major API changes

2. Update Version and Create PR
# 1. Create a branch from latest main
git checkout main
git pull origin main
git checkout -b release/v0.5.0

# 2. Update version in pyproject.toml
# Edit the version = "0.4.0" line to your new version

# 3. Commit and push
git add pyproject.toml
git commit -m "Bump version to 0.5.0"
git push origin release/v0.5.0

# 4. Create PR and get it reviewed/merged
gh pr create --title "Release v0.5.0" --body "Bump version for release"
3. Merge to Main

Once the PR is approved and merged to main, the GitHub Action will automatically:

  1. Detect the version change

  2. Build the package

  3. Publish to PyPI at https://pypi.org/p/meilisearch-mcp

  4. Make the new version available via pip install meilisearch-mcp

4. Verify Release

After merging, verify the release:

# Check GitHub Action status
gh run list --workflow=publish.yml

# Verify on PyPI (may take a few minutes)
pip index versions meilisearch-mcp

# Test installation of new version
pip install --upgrade meilisearch-mcp

Release Workflow File

The automated release is handled by .github/workflows/publish.yml, which:

  • Triggers on pushes to main branch

  • Checks if pyproject.toml version changed

  • Uses Python 3.10 and official build tools

  • Publishes using trusted publishing (no API keys required)

  • Provides verbose output for debugging

Troubleshooting Releases

Release didn't trigger: Check that the version in pyproject.toml actually changed between commits

Build failed: Check the GitHub Actions logs for Python package build errors

PyPI publish failed: Verify the package name and that trusted publishing is configured properly

Version conflicts: Ensure the new version number hasn't been used before on PyPI

Development vs Production Versions

  • Development: Install from source using pip install -e .

  • Production: Install from PyPI using pip install meilisearch-mcp

  • Specific version: Install using pip install meilisearch-mcp==0.5.0

Available Tools

22 tools
add-documentsC

Add documents to an index

ParametersJSON Schema
NameRequiredDescriptionDefault
documentsYes
indexUidYes
primaryKeyNo

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the action without details on permissions, rate limits, idempotency, or effects (e.g., overwriting existing documents). 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.

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It is front-loaded and directly states the tool's 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 tool's complexity (a mutation operation with 3 parameters), lack of annotations, and no output schema, the description is incomplete. It fails to address critical aspects like error handling, return values, or behavioral traits, leaving significant gaps for agent understanding.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters. It mentions 'documents' and 'index' but doesn't clarify what 'documents' should contain, what 'indexUid' refers to, or the optional 'primaryKey' role. This adds minimal value beyond the schema's property names.

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 'Add documents to an index' clearly states the action (add) and target resource (documents to an index), making the purpose understandable. However, it lacks differentiation from potential siblings like 'create-index' or 'update-settings', which could involve similar operations, so it doesn't fully distinguish itself.

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. For example, it doesn't specify if this is for bulk additions, initial population, or updates, nor does it mention prerequisites like needing an existing index. This leaves 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.

cancel-tasksC

Cancel tasks based on filters

ParametersJSON Schema
NameRequiredDescriptionDefault
indexUidsNo
statusesNo
typesNo
uidsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Cancel tasks' which implies a destructive mutation, but doesn't disclose critical behaviors: whether cancellation is reversible, what happens to in-progress tasks, permissions required, rate limits, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its effects and constraints.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Cancel tasks'), though it could be more structured by explicitly listing key behaviors. For its brevity, it communicates the basic intent without redundancy.

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 a mutation tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'cancel' means in this context (e.g., soft vs. hard deletion), error conditions, or return values. For a tool that likely alters system state, more detail is needed to ensure safe and correct usage.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'based on filters' which hints at the four parameters (indexUids, statuses, types, uids), but provides no semantic details: what these filters mean, how they combine (AND/OR), expected formats (e.g., comma-separated lists), or examples. This adds minimal value beyond the bare schema.

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

Purpose3/5

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

The description 'Cancel tasks based on filters' states a verb ('Cancel') and resource ('tasks'), but it's vague about scope and mechanism. It doesn't specify whether this cancels all matching tasks, only pending ones, or if it's irreversible. Compared to siblings like 'get-tasks' or 'get-task', it distinguishes as a mutation operation, but lacks specificity about what 'cancel' entails operationally.

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., tasks must exist), exclusions (e.g., cannot cancel completed tasks), or related tools like 'get-tasks' for filtering first. The description implies filtering but doesn't clarify if this is the primary method for task cancellation versus other approaches.

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

create-indexC

Create a new Meilisearch index

ParametersJSON Schema
NameRequiredDescriptionDefault
primaryKeyNo
uidYes

TDQS

C2.8/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 but offers minimal information. It states it's a creation operation, implying mutation, but doesn't cover permissions needed, whether it's idempotent, what happens on conflicts (e.g., if 'uid' already exists), rate limits, or the expected response format. This leaves significant gaps for an agent to understand the tool's behavior.

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 no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying the essential purpose without redundancy or fluff.

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 of creating a database index (a mutation operation), lack of annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain what the tool returns, error conditions, or how it integrates with the broader Meilisearch system (e.g., indexing tasks). More detail is needed for safe and effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description adds no information about the parameters 'uid' or 'primaryKey', such as what they represent, format constraints (e.g., 'uid' as a unique identifier), or how 'primaryKey' affects index behavior. This fails to compensate for the lack of 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 ('create') and resource ('Meilisearch index'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete-index' or 'list-indexes' beyond the obvious verb difference, missing an opportunity to clarify its unique role in the index lifecycle.

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., whether an index must not already exist), relationships to other tools (e.g., that 'add-documents' might follow), or when to choose this over modifying existing indexes via settings. The description is purely declarative without contextual advice.

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

create-keyC

Create a new API key

ParametersJSON Schema
NameRequiredDescriptionDefault
actionsYes
descriptionNo
expiresAtNo
indexesYes

TDQS

C2.8/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 'Create a new API key,' implying a write operation, but does not cover critical aspects like authentication requirements, rate limits, whether the key is immediately usable, or what happens on failure. 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 with zero waste, making it highly concise and front-loaded. It directly states the tool's purpose without unnecessary elaboration, which is appropriate for its brevity.

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 of a mutation tool with 4 parameters (2 required), 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lacks details on parameters, behavioral traits, return values, and usage context, making it inadequate for effective tool invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It adds no meaning beyond the tool name, failing to explain what 'actions,' 'description,' 'expiresAt,' or 'indexes' represent, their formats, or how they affect key creation, leaving all four parameters semantically unclear.

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 'Create a new API key' clearly states the action (create) and resource (API key), making the purpose immediately understandable. However, it does not differentiate from sibling tools like 'get-keys' or 'delete-key' by specifying what makes this creation unique, such as the required parameters or scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get-keys' for viewing keys or 'delete-key' for removal. The description lacks context about prerequisites, such as needing specific permissions or when API keys are typically created, leaving the agent without usage direction.

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

delete-indexC

Delete a Meilisearch index

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is 'Delete,' implying a destructive mutation, but doesn't specify if this is irreversible, requires specific permissions, has side effects (e.g., deleting associated data), or provides confirmation feedback. This leaves critical behavioral traits unaddressed 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, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse, which is ideal for conciseness.

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

Completeness2/5

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

Given the tool's destructive nature, lack of annotations, no output schema, and minimal parameter guidance, the description is incomplete. It doesn't cover behavioral risks, success/error responses, or usage context, which are critical for safe and effective tool invocation in a system with multiple deletion-related tools.

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

Parameters3/5

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

The description adds no parameter semantics beyond what the input schema provides. With 0% schema description coverage and 1 parameter ('uid'), the schema alone documents it as a required string. The description doesn't explain what 'uid' represents (e.g., index identifier), its format, or examples, but since there's only one parameter and the tool's purpose is straightforward, a baseline score of 3 is appropriate as the gap is minimal.

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 target resource ('a Meilisearch index'), which is specific and unambiguous. However, it doesn't distinguish this tool from sibling tools like 'delete-key' or 'cancel-tasks' that also perform deletion operations, 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.

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., index must exist), exclusions, or comparisons to siblings like 'cancel-tasks' (which might handle deletion-related tasks) or 'list-indexes' (which could help identify indexes to delete).

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

delete-keyC

Delete an API key

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

C2.8/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. 'Delete' implies a destructive, irreversible mutation, but the description doesn't specify permissions required, confirmation prompts, error conditions, or what happens on success/failure. 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.

Conciseness5/5

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

The description is a single, direct sentence with zero wasted words. It's appropriately sized for a simple destructive operation and front-loads the essential action. 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 destructive tool with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It lacks critical context: what the 'key' parameter means, behavioral details (permissions, irreversibility), and expected outcomes. The agent cannot safely invoke this tool based solely on the description.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'key' represents (e.g., key ID, name, or full API key), format expectations, or validation rules. The single parameter remains semantically opaque beyond its name.

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 resource ('an API key'), making the purpose immediately understandable. It distinguishes from sibling tools like 'create-key' and 'get-keys' by specifying the destructive operation. However, it doesn't specify whether this deletes a single key or all keys, 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. It doesn't mention prerequisites (e.g., needing an existing key), exclusions, or related tools like 'get-keys' for verification. The agent must infer usage from 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.

get-connection-settingsB

Get current Meilisearch connection settings

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 it's a 'Get' operation, implying read-only behavior, but doesn't specify authentication requirements, rate limits, error conditions, or what 'current' entails (e.g., cached vs. live data). This leaves significant gaps for a tool that likely interacts with system settings.

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 no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for a simple tool.

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 of accessing connection settings (which may involve permissions or system state), the description is insufficient. With no annotations and no output schema, it fails to explain what the return value includes (e.g., host, API key, timeout settings) or potential side effects, leaving the agent under-informed.

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 input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, so it meets the baseline of 4 for zero-parameter tools, as there's no additional semantic burden.

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 ('current Meilisearch connection settings'), making the purpose unambiguous. It doesn't explicitly differentiate from siblings like 'update-connection-settings', but the action is distinct enough to avoid confusion.

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, timing, or compare it to related tools like 'update-connection-settings' or 'get-settings', leaving the agent without usage context.

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

get-documentsC

Get documents from an index

ParametersJSON Schema
NameRequiredDescriptionDefault
indexUidYes
limitNo
offsetNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is read-only, requires authentication, has rate limits, or describes output format (e.g., pagination, error handling). This is inadequate for a tool with parameters and no output schema.

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 concise with a single sentence, but it's under-specified rather than efficiently informative. It's front-loaded but lacks necessary detail, making it lean at the cost of clarity.

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 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't cover parameter meanings, behavioral traits, or return values, leaving significant gaps for an AI agent to understand and invoke the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'indexUid', 'limit', or 'offset' mean, their expected formats, or how they affect behavior (e.g., pagination). This leaves parameters undocumented beyond the schema.

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

Purpose3/5

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

The description 'Get documents from an index' states a clear verb ('Get') and resource ('documents'), but it's vague about scope and doesn't distinguish from siblings like 'search' or 'list-indexes'. It lacks specificity about what 'Get' entails (e.g., retrieval, listing, or fetching).

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 such as 'search' (for querying) or 'list-indexes' (for index metadata). The description implies usage for document retrieval but offers no context on prerequisites, exclusions, or comparisons with sibling tools.

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

get-health-statusB

Get comprehensive health status of Meilisearch

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden for behavioral disclosure. It states what the tool does but doesn't describe response format, error conditions, rate limits, or authentication requirements. 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.

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 no wasted words. It's appropriately sized for a simple 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.

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 adequately covers the basic purpose. However, without annotations or output schema, it should ideally provide more context about what 'comprehensive health status' includes or the response format to help the agent understand what to expect.

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 with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't waste space discussing nonexistent parameters, earning a baseline score of 4 for zero-parameter tools.

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 ('comprehensive health status of Meilisearch'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'health-check' or 'get-system-info', but the specificity of 'comprehensive health status' 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 'health-check' or 'get-system-info'. There's no mention of prerequisites, timing, or comparative context with sibling tools, leaving the agent to infer usage scenarios.

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

get-index-metricsC

Get detailed metrics for an index

ParametersJSON Schema
NameRequiredDescriptionDefault
indexUidYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Get detailed metrics' but doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like. The description is minimal and lacks essential context for safe and effective use.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It is appropriately sized and front-loaded, though it could benefit from more detail given the lack of annotations and schema coverage.

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 tool with one parameter but no annotations or output schema), the description is incomplete. It doesn't explain what 'detailed metrics' include, how to interpret results, or usage context. For a tool with zero schema coverage and no annotations, more descriptive content is needed to guide the agent effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'for an index' which hints at the 'indexUid' parameter, but provides no details on parameter meaning, format, or constraints. The description adds minimal value beyond the bare schema, failing to clarify what an 'indexUid' is or how to obtain it.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('detailed metrics for an index'), making the purpose understandable. It distinguishes from siblings like 'get-stats' or 'get-health-status' by specifying 'metrics' for an index, though it could be more specific about what metrics are included.

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 like 'get-stats' or 'get-health-status'. The description implies it's for index-specific metrics, but it doesn't specify 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.

get-keysC

Get list of API keys

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get list of API keys', implying a read-only operation, but doesn't disclose any behavioral traits like authentication requirements, rate limits, pagination behavior (implied by limit/offset params but not explained), or what the returned list includes. This leaves significant gaps for an agent to understand how to use it effectively.

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 very concise with a single sentence, 'Get list of API keys', which is front-loaded and wastes no words. However, it might be overly brief given the lack of other context, but it efficiently states the core action.

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

Completeness2/5

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

Given the tool's complexity (a read operation with pagination parameters), no annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain the return values, pagination behavior, or any constraints, making it inadequate for an agent to use the tool correctly without additional context.

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

Parameters2/5

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

The input schema has 2 parameters (limit, offset) with 0% description coverage, meaning the schema provides no semantic information. The description 'Get list of API keys' doesn't mention or explain these parameters at all, failing to compensate for the lack of schema documentation. This leaves the agent guessing about the purpose and usage of limit and offset.

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

Purpose3/5

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

The description 'Get list of API keys' clearly states the verb ('Get') and resource ('API keys'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'create-key' or 'delete-key' beyond the basic action, and it lacks specificity about scope or format of the returned 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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, such as whether it requires authentication or how it relates to sibling tools like 'create-key' or 'delete-key'.

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

get-settingsC

Get current settings for an index

ParametersJSON Schema
NameRequiredDescriptionDefault
indexUidYes

TDQS

C2.8/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 read operation ('Get'), implying it's non-destructive, but doesn't cover aspects like authentication requirements, rate limits, error conditions, or what the output format looks like. This leaves significant gaps for a tool with no structured safety hints.

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

Completeness2/5

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

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't explain what 'settings' include, how they're returned, or any dependencies. For a read operation in a system with multiple setting-related tools, 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.

Parameters2/5

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

The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic information. The description mentions 'for an index', which hints that 'indexUid' identifies an index, but doesn't explain what an index is, valid formats for the UID, or where to find it. This adds minimal value beyond the bare 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 verb 'Get' and the resource 'current settings for an index', making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get-connection-settings' or 'update-settings', which would require more specificity about what type of settings it retrieves.

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 like needing an existing index, nor does it compare to siblings such as 'get-connection-settings' for different setting types or 'update-settings' for modifications.

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

get-statsC

Get database statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get database statistics' implies a read-only operation, but it doesn't specify whether this requires authentication, what format the statistics are returned in, if there are rate limits, or if it affects system performance. 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.

Conciseness5/5

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

The description is extremely concise with just three words: 'Get database statistics'. It is front-loaded and wastes no words, making it easy to parse quickly. Every word earns its place by conveying the core action and target.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what statistics are returned, their format, or any behavioral nuances. For a tool that likely provides structured data (statistics), more context is needed to guide the agent effectively, especially with many sibling tools that might offer similar information.

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 input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters to explain, this is acceptable. A baseline score of 4 is appropriate as the description doesn't need to compensate for missing parameter information.

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

Purpose3/5

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

The description 'Get database statistics' clearly states the verb ('Get') and resource ('database statistics'), making the purpose understandable. However, it's somewhat vague about what specific statistics are retrieved, and it doesn't distinguish this tool from siblings like 'get-system-info' or 'get-index-metrics' that might also provide statistical data. This prevents a higher 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. With siblings like 'get-system-info', 'get-index-metrics', and 'get-health-status' that might overlap in providing statistical or system information, the agent has no indication of which tool is appropriate for which scenario. This lack of differentiation results in a low score.

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

get-system-infoC

Get system-level information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.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 the full burden of behavioral disclosure. 'Get system-level information' implies a read-only operation, but it doesn't specify what kind of information is returned, whether there are any side effects, authentication requirements, rate limits, or error conditions. The description provides minimal behavioral context beyond the basic read implication.

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

Conciseness3/5

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

The description is extremely concise ('Get system-level information') but this brevity comes at the cost of being under-specified rather than efficiently informative. While it's front-loaded and wastes no words, it fails to provide the necessary context that would make it genuinely helpful. The single sentence doesn't earn its place by adding sufficient value.

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

Completeness2/5

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

Given the tool's apparent simplicity (0 parameters, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what 'system-level information' encompasses or what the return value looks like. With no output schema and multiple similar sibling tools, the description should provide more context about what distinguishes this tool's output from alternatives like get-health-status or get-stats.

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 with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist. This meets the baseline expectation for a parameterless tool where the schema handles all parameter documentation.

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

Purpose2/5

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

The description 'Get system-level information' is a tautology that essentially restates the tool name 'get-system-info'. It doesn't specify what type of system information is retrieved or differentiate this tool from sibling tools like 'get-health-status', 'get-stats', or 'get-version' that also provide system-related information. The purpose is vague and lacks specificity about what distinguishes this tool.

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

Usage Guidelines1/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. With multiple sibling tools that appear to provide system information (get-health-status, get-stats, get-version, get-settings), there's no indication of what makes this tool distinct or when it should be preferred over those alternatives. No context, exclusions, or usage scenarios are mentioned.

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

get-taskC

Get information about a specific task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskUidYes

TDQS

C2.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 the full burden of behavioral disclosure. It states the tool 'gets information', implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. 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.

Conciseness4/5

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

The description is a single, clear sentence that is front-loaded with the core purpose. It avoids unnecessary words, making it efficient. However, it could be more structured by including key details, but as-is, it earns high marks for brevity.

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

Completeness2/5

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

Given the tool's complexity (a read operation with one parameter), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover parameter meaning, return values, or behavioral traits, making it inadequate for the agent to use the tool effectively without additional context.

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

Parameters2/5

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

The input schema has one parameter 'taskUid' with 0% description coverage, and the tool description adds no information about parameters. It doesn't explain what 'taskUid' represents, its format, or how to obtain it. With low schema coverage, the description fails to compensate, leaving the parameter undocumented.

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

Purpose2/5

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

The description 'Get information about a specific task' states the basic action but is vague about what information is retrieved. It distinguishes from siblings like 'get-tasks' (plural) by specifying 'specific task', but lacks detail on scope or content of the information. This is better than a tautology but remains general.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage for retrieving details of a single task, but it doesn't mention prerequisites, exclusions, or compare with siblings like 'get-tasks' (which likely lists multiple tasks) or 'cancel-tasks'. Without such context, the agent must infer usage from the name alone.

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

get-tasksC

Get list of tasks with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
afterEnqueuedAtNo
afterFinishedAtNo
afterStartedAtNo
batchUidsNo
beforeEnqueuedAtNo
beforeFinishedAtNo
beforeStartedAtNo
canceledByNo
fromNo
indexUidsNo
limitNo
reverseNo
statusesNo
typesNo
uidsNo

TDQS

C2.6/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 only states it 'gets' tasks with filters, implying a read operation, but doesn't disclose important behaviors like whether this is paginated (given 'from' and 'limit' parameters), rate limits, authentication requirements, or what the response format looks like. For a tool with 15 parameters and no annotations, 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.

Conciseness5/5

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

The description is extremely concise at just 7 words with zero wasted language. It's front-loaded with the core purpose and efficiently mentions the filtering capability. Every word earns its place in this minimal description.

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 (15 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what 'tasks' are in this system's context, doesn't describe the return format, doesn't address pagination behavior (implied by 'from' and 'limit' parameters), and provides minimal guidance on the extensive filtering options. For a list operation with many parameters, more context is needed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'optional filters' which hints at the 15 parameters, but provides no semantic context about what these filters do (e.g., date filtering, status filtering, UID filtering). The description doesn't explain any parameters beyond the generic 'filters' mention, leaving significant gaps.

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

Purpose3/5

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

The description 'Get list of tasks with optional filters' clearly states the verb ('Get') and resource ('tasks'), but it's vague about what 'tasks' are in this context and doesn't differentiate from sibling tools like 'get-task' (singular) or 'cancel-tasks'. It provides basic purpose but lacks specificity about the domain or scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of when to use 'get-tasks' versus 'get-task' (singular), 'cancel-tasks', or other sibling tools. No context about prerequisites, appropriate scenarios, or exclusions is provided.

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

get-versionB

Get Meilisearch version information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states what the tool does but doesn't disclose behavioral traits like whether it's read-only, requires authentication, has rate limits, or what format the version information returns. For a tool with zero annotation coverage, this is a significant gap 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.

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 with zero wasted words. It's appropriately sized for a simple, parameter-less tool and is front-loaded with the essential information.

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 minimally adequate but lacks completeness. It doesn't explain what 'version information' includes (e.g., Meilisearch version number, build details) or behavioral aspects. For a tool with no annotations or output schema, more context would be helpful, though the low complexity keeps it from being severely inadequate.

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 with 100% schema description coverage, so the schema fully documents the lack of inputs. The description appropriately doesn't mention parameters, which is correct for this case. Baseline would be 4 since no parameters exist, and the description doesn't incorrectly suggest any.

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

Purpose4/5

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

The description clearly states the tool's purpose as retrieving Meilisearch version information, using specific verbs ('Get') and resources ('version information'). It distinguishes from siblings like get-health-status or get-system-info by focusing specifically on version data. However, it doesn't explicitly contrast with these similar tools, keeping it at a 4 rather than 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. With siblings like get-health-status, get-system-info, and get-stats that might include version information, there's no indication of when this specific version-focused tool is preferred. No context or exclusions are mentioned.

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

health-checkB

Check Meilisearch server health

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states it 'checks' health but doesn't specify what 'health' means, what metrics are returned, whether it performs active probing or passive status checking, or what authentication/rate limits apply. This leaves significant gaps for a tool that interacts with a server.

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 no wasted words. It's appropriately sized for a simple health check tool and front-loads the essential information.

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 server health check tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'health' encompasses, what format the response takes, whether it includes uptime/performance metrics, or how it differs from 'get-health-status'. Given the complexity of server monitoring and lack of structured data, more context is needed.

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 zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Check Meilisearch server health' specifies both the verb ('Check') and the resource ('Meilisearch server health'). However, it doesn't differentiate from sibling 'get-health-status' which appears to serve a similar function, preventing 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?

No guidance is provided about when to use this tool versus alternatives like 'get-health-status' or other monitoring tools. The description only states what it does, not when it should be selected over other available options.

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

list-indexesB

List all Meilisearch indexes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that it 'List all Meilisearch indexes,' which implies a read-only operation, but doesn't specify whether it returns all indexes at once, uses pagination, requires authentication, or has rate limits. 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.

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded with the key action and resource, making it easy to understand at a glance. Every part of the sentence contributes directly to explaining the tool's function.

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, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks details on behavioral aspects like return format or usage context. For a read operation in a server with many sibling tools, more guidance on when to use it would enhance completeness.

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 input schema has 100% description coverage (though empty). The description doesn't need to add parameter details, so it appropriately focuses on the tool's purpose. Since there are no parameters, the baseline is 4, as the description doesn't mislead or omit necessary parameter information.

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') and resource ('Meilisearch indexes'), making the purpose immediately understandable. It distinguishes from siblings like 'get-index-metrics' or 'get-stats' by focusing specifically on listing indexes rather than retrieving metrics or statistics. However, it doesn't explicitly differentiate from 'create-index' or 'delete-index' beyond the verb choice.

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 'get-index-metrics' or 'get-stats', nor does it mention prerequisites or context for usage. It simply states what the tool does without indicating when it's appropriate to invoke it in relation to other tools.

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

update-connection-settingsC

Update Meilisearch connection settings

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
urlNo

TDQS

C2.8/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 'Update' which implies a mutation operation, but doesn't clarify whether this requires specific permissions, if changes are reversible, what happens to existing settings not mentioned, or any rate limits. This is a significant gap 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.

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 appropriately sized for a simple update operation and front-loads the essential information, 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 this is a mutation tool with no annotations, 0% schema description coverage, and no output schema, the description is inadequate. It should explain more about what connection settings are, what the update affects, potential side effects, and expected outcomes to help the agent use it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'connection settings' which hints at the purpose of 'api_key' and 'url' parameters, but doesn't explain what these settings control, their expected formats, or whether both are required. The description adds minimal value beyond what can be inferred from parameter names.

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

Purpose4/5

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

The description clearly states the verb 'Update' and the resource 'Meilisearch connection settings', making the tool's purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'get-connection-settings' or explain what specific connection settings are being updated beyond what the parameters suggest.

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 'get-connection-settings' for retrieval or other update tools. There's no mention of prerequisites, typical use cases, or when not to use it, leaving the agent with minimal context for decision-making.

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

update-settingsC

Update settings for an index

ParametersJSON Schema
NameRequiredDescriptionDefault
indexUidYes
settingsYes

TDQS

C2.8/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 updates settings, implying a mutation, but fails to mention permissions required, whether changes are reversible, rate limits, or what the response looks like. 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 with no wasted words. It is 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 of a mutation tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on behavior, parameters, and expected outcomes, making it inadequate for safe and effective use by an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only mentions 'settings for an index' without explaining what 'indexUid' or 'settings' entail, their formats, or valid values. This adds minimal value beyond the schema's structure.

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

Purpose4/5

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

The description clearly states the action ('Update') and resource ('settings for an index'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'update-connection-settings' or 'get-settings', which would require more specificity for 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?

No guidance is provided on when to use this tool versus alternatives such as 'get-settings' (for reading) or 'update-connection-settings' (for a different type of update). The description lacks context about prerequisites, exclusions, or typical use cases.

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

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific resources like indexes, documents, tasks, keys, or settings, with clear boundaries. However, get-health-status and health-check could cause confusion as they both relate to health monitoring, though their descriptions differ slightly (comprehensive vs. basic check).

Naming Consistency5/5

Tool names follow a consistent verb-noun pattern with hyphens throughout, such as create-index, get-documents, and update-settings. There are no deviations in style or convention, making the set predictable and easy to parse.

Tool Count4/5

With 22 tools, the count is on the higher side but reasonable for a comprehensive Meilisearch server covering indexes, documents, tasks, keys, settings, and system info. It feels slightly heavy but not excessive, as each tool serves a specific function in the domain.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for Meilisearch operations, including index management (create, delete, list), document handling (add, get, search), task monitoring (get, cancel), key management (create, delete, get), and settings (get, update). No obvious gaps are present for the server's purpose.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/meilisearch/meilisearch-mcp'

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