Meilisearch MCP Server
OfficialThis server provides a Model Context Protocol (MCP) interface for Meilisearch, enabling seamless integration with LLM tools like Claude. You can:
Manage Connections: View and update Meilisearch URL/API key settings
Search Functionality: Perform flexible searches across indices with filtering, sorting, limiting, and offset
Index Management: Create, list, and retrieve metrics for indices
Document Operations: Add, retrieve, and manage documents
Settings Management: View and update index settings like ranking and faceting
API Key Management: Create, list, and delete API keys with specific permissions
Task Management: Monitor, cancel, and delete tasks with detailed filtering options
System Monitoring: Check health, view version information, and get database statistics
Provides a Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces, supporting index and document management, settings configuration, task monitoring, API key management, and search capabilities across single or multiple indices.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Meilisearch MCP Serversearch for 'machine learning tutorials' in the blog_posts index"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🤔 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
structuredContentalongside 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-mcp2️⃣ 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
meilisearchThat'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-mcpFrom 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:latestBuild 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-mcpIntegration 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
Start Meilisearch:
docker run -d -p 7700:7700 getmeili/meilisearch:v1.28Install Development Dependencies:
uv pip install -r requirements-dev.txtRun Tests:
python -m pytest tests/ -vFormat 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:
💬 Join our Discord - Chat with the community
🐛 Report Issues - Found a bug? Let us know!
💡 Feature Requests - Have an idea? We're listening!
📖 Meilisearch Docs - Learn more about Meilisearch
🤗 Contributing
We welcome contributions! Here's how to get started:
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Write tests for your changes
Make your changes and run tests
Format your code with
blackCommit your changes (
git commit -m 'Add amazing feature')Push to your branch (
git push origin feature/amazing-feature)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 statusupdate-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 keylist-indexes: List all available indexesdelete-index: Delete an existing index and all its documentsget-index-metrics: Get detailed metrics for a specific index
Document Operations
get-documents: Retrieve documents from an index with paginationadd-documents: Add or update documents in an index
Search
search: Flexible search across single or multiple indices with filtering and sorting options
Settings Management
get-settings: View current settings for an indexupdate-settings: Update index settings (ranking, faceting, etc.)
API Key Management
get-keys: List all API keyscreate-key: Create new API key with specific permissionsdelete-key: Delete an existing API key
Task Management
get-task: Get information about a specific taskget-tasks: List tasks with optional filterscancel-tasks: Cancel pending or enqueued tasks
System Monitoring
health-check: Basic health checkget-health-status: Comprehensive health statusget-version: Get Meilisearch version informationget-stats: Get database statisticsget-system-info: Get system-level information
Development Setup
Prerequisites
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/releasesInstall 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
Fork and clone the repository
Set up development environment following the Development Setup section above
Create a feature branch from
mainWrite tests first if adding new functionality (Test-Driven Development)
Run tests locally to ensure all tests pass before committing
Format code with Black and ensure code quality
Commit changes with descriptive commit messages
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-nameTesting 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
Automated Publishing: When the version number in
pyproject.tomlchanges on themainbranch, a GitHub Action automatically:Builds the Python package
Publishes it to PyPI using trusted publishing
Creates a new release on GitHub
Version Detection: The workflow compares the current version in
pyproject.tomlwith the previous commit to detect changesPyPI 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:
Detect the version change
Build the package
Publish to PyPI at https://pypi.org/p/meilisearch-mcp
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-mcpRelease Workflow File
The automated release is handled by .github/workflows/publish.yml, which:
Triggers on pushes to
mainbranchChecks if
pyproject.tomlversion changedUses 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-mcpSpecific version: Install using
pip install meilisearch-mcp==0.5.0
Available Tools
22 toolsadd-documentsC
Add documents to an index
| Name | Required | Description | Default |
|---|---|---|---|
| documents | Yes | ||
| indexUid | Yes | ||
| primaryKey | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| indexUids | No | ||
| statuses | No | ||
| types | No | ||
| uids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| primaryKey | No | ||
| uid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| actions | Yes | ||
| description | No | ||
| expiresAt | No | ||
| indexes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes | ||
| limit | No | ||
| offset | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| taskUid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| afterEnqueuedAt | No | ||
| afterFinishedAt | No | ||
| afterStartedAt | No | ||
| batchUids | No | ||
| beforeEnqueuedAt | No | ||
| beforeFinishedAt | No | ||
| beforeStartedAt | No | ||
| canceledBy | No | ||
| from | No | ||
| indexUids | No | ||
| limit | No | ||
| reverse | No | ||
| statuses | No | ||
| types | No | ||
| uids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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.
searchB
Search through Meilisearch indices. If indexUid is not provided, it will search across all indices.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| indexUid | No | ||
| limit | No | ||
| offset | No | ||
| query | Yes | ||
| sort | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the default behavior for missing 'indexUid' (search across all indices), which is useful context. However, it lacks critical details such as whether this is a read-only operation, potential rate limits, authentication requirements, or what the search results look like (e.g., format, pagination). For a search tool with 6 parameters, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, consisting of two clear sentences. The first sentence directly states the tool's purpose, and the second adds essential parameter context without redundancy. Every sentence earns its place by providing value, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 1 required), no annotations, and no output schema, the description is incomplete. It covers the basic purpose and one parameter's default behavior but misses details on other parameters, behavioral traits like safety or performance, and expected outputs. For a search tool in this context, more comprehensive information is needed to guide effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 6 parameters have descriptions in the schema. The description only addresses one parameter ('indexUid') by explaining its default behavior when omitted. It doesn't add meaning for other parameters like 'filter', 'limit', 'offset', 'query', or 'sort', leaving most semantics undocumented. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Search through Meilisearch indices' with a specific verb ('Search') and resource ('Meilisearch indices'). It distinguishes from siblings like 'get-documents' or 'list-indexes' by focusing on search functionality rather than retrieval or listing. However, it doesn't explicitly differentiate from potential search alternatives within the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by stating 'If indexUid is not provided, it will search across all indices,' which suggests when to omit this parameter. However, it doesn't offer explicit when-to-use vs. when-not-to-use advice or name alternatives among siblings like 'get-documents' for specific document retrieval. The guidance is limited to parameter behavior rather than tool selection.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| indexUid | Yes | ||
| settings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the 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.
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.
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.
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.
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.
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
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).
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.
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.
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
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
MCP server for searching Airweave collections with natural language queries.
MCP server for Google search results via SERP API
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Related MCP Servers
- AlicenseAqualityFmaintenanceServer for interacting with Honeycomb observability data. This server enables LLMs like Claude to directly analyze and query your Honeycomb datasets.14243MIT
- AlicenseBqualityFmaintenanceA server facilitating web search functionality by utilizing Perplexity AI's API, designed to integrate with the Claude desktop client for enhanced search queries.1308MIT
- AlicenseNot gradedqualityDmaintenanceA simple server that integrates with Claude to allow querying and manipulating Notion pages and databases through natural language prompts.991MIT
- AlicenseNot gradedqualityDmaintenanceA lightweight Flask-based server that enables Claude AI to perform real-time web searches via DuckDuckGo during conversations, allowing the AI to access current information.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meilisearch/meilisearch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server