Skip to main content
Glama
Cicatriiz

Civitai MCP Server

by Cicatriiz

Civitai MCP Server

A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Civitai's vast collection of AI models, creators, and generated content. Browse, search, and discover AI models seamlessly through your favorite MCP-compatible AI assistant.

License: MIT Node.js Version TypeScript

Features

šŸ” Model Discovery

  • Advanced Search: Find AI models with flexible filtering by type, creator, tags, and more

  • Browse Categories: Explore models by type (Checkpoints, LoRA, ControlNet, etc.)

  • Popular & Trending: Discover the most downloaded and highest-rated models

  • Latest Models: Stay up-to-date with newly uploaded models

  • Hash Lookup: Find models by file hash for verification

šŸ‘Øā€šŸ’» Creator & Community

  • Creator Profiles: Browse and search for model creators

  • Creator Collections: View all models from specific creators

  • Tag System: Explore models through Civitai's comprehensive tagging system

šŸ–¼ļø Generated Content

  • Image Gallery: Browse AI-generated images with detailed metadata

  • Generation Parameters: Access prompt, settings, and model information

  • Community Showcase: Discover inspiring creations from the community

šŸ“Š Model Intelligence

  • Detailed Model Info: Complete model specifications, versions, and files

  • Version History: Track model updates and improvements

  • Download URLs: Direct access to model downloads with authentication support

  • Content Safety: Access scan results for pickle and virus safety

Related MCP server: Civitai MCP Server

Installation

Prerequisites

  • Node.js 18+

  • npm or yarn

  • A Civitai API key (optional, but recommended for higher rate limits)

Quick Start

  1. Clone the repository:

git clone https://github.com/Cicatriiz/civitai-mcp-server.git
cd civitai-mcp-server
  1. Install dependencies:

npm install
  1. Build the server:

npm run build
  1. Set up your API key (optional):

export CIVITAI_API_KEY="your_api_key_here"
  1. Run the server:

npm start

Getting a Civitai API Key

  1. Visit Civitai API Keys

  2. Log in to your Civitai account

  3. Generate a new API key

  4. Copy the key and set it as an environment variable

Configuration

MCP Client Setup

Add the server to your MCP client configuration:

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "civitai": {
      "command": "node",
      "args": ["/path/to/civitai-mcp-server/dist/index.js"],
      "env": {
        "CIVITAI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Other MCP Clients

Configure according to your client's documentation, using:

  • Command: node /path/to/civitai-mcp-server/dist/index.js

  • Transport: stdio

  • Environment: CIVITAI_API_KEY=your_key

Usage Examples

Search for SDXL LoRA models related to anime:
- Tool: search_models
- Query: "anime"
- Types: ["LORA"]
- BaseModels: ["SDXL 1.0"]
Get the most downloaded models this week:
- Tool: get_popular_models
- Period: "Week"
- Limit: 10

Model Details

Get comprehensive information about a specific model:
- Tool: get_model
- ModelId: 12345

Browse Generated Images

Explore recent AI-generated images:
- Tool: browse_images
- Sort: "Newest"
- Limit: 50
- NSFW: "None"

Available Tools

Tool

Description

Key Parameters

search_models

Search models with filters

query, types, sort, baseModels

get_model

Get detailed model info

modelId

get_model_version

Get version details

modelVersionId

get_model_version_by_hash

Find model by file hash

hash

browse_images

Browse generated images

sort, period, modelId

get_creators

Search creators

query, limit

get_tags

Browse model tags

query, limit

get_popular_models

Most popular models

period, limit

get_latest_models

Newest models

limit

get_top_rated_models

Highest rated models

period, limit

search_models_by_tag

Models with specific tag

tag, sort

search_models_by_creator

Models by creator

username, sort

get_models_by_type

Filter by model type

type, sort

get_download_url

Get model download URL

modelVersionId

API Reference

Model Types

  • Checkpoint - Full Stable Diffusion models

  • LORA - Low-Rank Adaptation models

  • TextualInversion - Embedding models

  • Hypernetwork - Hypernetwork models

  • ControlNet - ControlNet models

  • AestheticGradient - Aesthetic gradient models

  • Poses - Pose models

Sort Options

  • Highest Rated - Best community ratings

  • Most Downloaded - Most popular downloads

  • Newest - Recently uploaded

Time Periods

  • AllTime - No time restriction

  • Year - Past 12 months

  • Month - Past 30 days

  • Week - Past 7 days

  • Day - Past 24 hours

API Coverage

This MCP server implements all major Civitai API v1 endpoints:

  • āœ… /api/v1/models - List and search models

  • āœ… /api/v1/models/:id - Get specific model

  • āœ… /api/v1/model-versions/:id - Get model version

  • āœ… /api/v1/model-versions/by-hash/:hash - Get version by hash

  • āœ… /api/v1/images - Browse images

  • āœ… /api/v1/creators - List creators

  • āœ… /api/v1/tags - List tags

  • āœ… Download URLs with authentication support

Model Types Supported

  • Checkpoint: Full Stable Diffusion models

  • LORA: Low-Rank Adaptation models

  • TextualInversion: Textual inversion embeddings

  • Hypernetwork: Hypernetwork models

  • AestheticGradient: Aesthetic gradient models

  • Controlnet: ControlNet models

  • Poses: Pose models

Content Filtering

The server supports Civitai's content filtering system:

  • NSFW content levels (None, Soft, Mature, X)

  • Commercial use permissions

  • Model licensing options

Error Handling

The server includes comprehensive error handling for:

  • API rate limiting

  • Network connectivity issues

  • Invalid parameters

  • Authentication errors

  • Data validation

Development

Project Structure

civitai-mcp-server/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts          # Main server implementation
│   ā”œā”€ā”€ civitai-client.ts # Civitai API client
│   └── types.ts          # TypeScript type definitions
ā”œā”€ā”€ dist/                 # Compiled JavaScript output
ā”œā”€ā”€ tests/                # Test files
└── docs/                 # Additional documentation

Building from Source

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run tests
npm test

# Development mode with hot reload
npm run dev

Testing

# Run comprehensive test suite
npm test

# Test specific endpoints
node test.js
node comprehensive-test.js

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. Submit a pull request

Limitations

  • Rate Limiting: Civitai API has rate limits. Use an API key for higher limits.

  • NSFW Content: Some content may be filtered based on your account settings.

  • Model Availability: Some models may be temporarily unavailable or require authentication.

Troubleshooting

Common Issues

Server won't start:

  • Ensure Node.js 18+ is installed

  • Check that all dependencies are installed (npm install)

  • Verify the build completed successfully (npm run build)

API rate limiting:

  • Get a Civitai API key and set the CIVITAI_API_KEY environment variable

  • Reduce request frequency if experiencing limits

Models not found:

  • Check model ID accuracy

  • Verify the model hasn't been removed or made private

  • Ensure proper spelling in search queries

License

MIT License - see LICENSE file for details

Support

Available Tools

14 tools
browse_imagesC

Browse AI-generated images from Civitai

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of images to return (1-200, default 100)
modelIdNoFilter images from a specific model
modelVersionIdNoFilter images from a specific model version
nsfwNoNSFW content level filter
pageNoPage number for pagination
periodNoTime period for sorting
postIdNoGet images from a specific post
sortNoSort order for images
usernameNoFilter images by creator username

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'browse' but doesn't disclose behavioral traits such as pagination details (implied by 'page' parameter), rate limits, authentication needs, or what the output looks like (e.g., image metadata vs. URLs). This is a significant gap for a tool with 9 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.

Conciseness5/5

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

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

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

Completeness2/5

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

Given the complexity (9 parameters, no annotations, no output schema), the description is incomplete. It doesn't cover behavioral aspects like pagination, rate limits, or output format, which are crucial for effective tool use. The schema handles parameters well, but the overall context lacks necessary operational details.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaning beyond the schema, such as explaining parameter interactions or default behaviors. Baseline 3 is appropriate as the schema does the heavy lifting, but no extra value is added.

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

Purpose4/5

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

The description clearly states the action ('browse') and resource ('AI-generated images from Civitai'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'search_models' or 'get_latest_models', which might also involve browsing or retrieving content, so it lacks explicit sibling distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With sibling tools like 'search_models' or 'get_popular_models', the description doesn't clarify if this is for general browsing, filtered exploration, or specific use cases, 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_creatorsC

Browse and search for model creators on Civitai

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of creators to return (0-200, default 20)
pageNoPage number for pagination
queryNoSearch query to filter creators by username

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'browse and search' but doesn't specify if this is a read-only operation, whether it requires authentication, rate limits, pagination behavior beyond the schema, or what the output format looks like. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the complexity of a search/browse tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what information is returned about creators, how results are structured, or any behavioral traits like error handling. This leaves the agent with insufficient context for effective use.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting all three parameters (limit, page, query) with details like ranges and purposes. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for high schema coverage without compensating value.

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

Purpose4/5

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

The description clearly states the verb ('browse and search') and resource ('model creators on Civitai'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'search_models_by_creator' or 'get_latest_models', which might also involve creators, so it doesn't fully distinguish from alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios like when you need creator information specifically, or when to prefer other tools like 'search_models_by_creator' for models by a creator. Without such context, the agent lacks clear usage direction.

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

get_download_urlC

Get the download URL for a specific model version

ParametersJSON Schema
NameRequiredDescriptionDefault
modelVersionIdYesThe ID of the model version to get download URL for

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool retrieves a download URL but doesn't mention any behavioral traits, such as whether it requires authentication, has rate limits, returns a temporary or permanent URL, or what format the URL is in. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the download URL is used for, its validity period, or any error conditions. For a tool that likely involves accessing external resources, more context is needed to ensure correct usage.

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

Parameters3/5

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

The description implies the parameter 'modelVersionId' is used to specify which model version to get the URL for, but it adds no meaning beyond what the input schema provides (which has 100% coverage and fully describes the parameter). Since schema coverage is high, the baseline is 3, and the description doesn't compensate with extra details like ID format or sourcing.

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

Purpose4/5

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

The description clearly states the action ('Get') and target resource ('download URL for a specific model version'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_model_version' or 'get_model_version_by_hash' that might also retrieve model version data, so it's not fully specific about its unique function.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a model version ID from another tool, or compare to siblings like 'get_model_version' that might return different data. This leaves the agent with minimal context for selection.

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

get_latest_modelsC

Get the newest models uploaded to Civitai

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of models to return (default: 20)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, how it handles rate limits, authentication needs, or what the return format looks like (e.g., list of model objects). The phrase 'Get' implies retrieval but lacks specifics on behavior.

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

Conciseness5/5

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

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

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'newest' means (e.g., sorting criteria), potential limitations, or return value structure, leaving significant gaps in understanding how to effectively use this tool in context with its siblings.

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

Parameters3/5

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

The description adds no parameter information beyond what's in the schema, which has 100% coverage for the single parameter 'limit'. Since schema coverage is high, the baseline score of 3 applies, as the description doesn't compensate but also doesn't need to given the schema's completeness.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('newest models uploaded to Civitai'), providing specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'get_popular_models' or 'get_top_rated_models' which might also return recent models, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_popular_models' or 'search_models'. It mentions 'newest models' but doesn't clarify if this means by upload date, version date, or another metric, leaving usage context ambiguous.

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

get_modelC

Get detailed information about a specific model by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
modelIdYesThe ID of the model to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information', but doesn't specify what that includes (e.g., metadata, statistics, permissions), whether it's a read-only operation, or any constraints like rate limits or authentication needs. This leaves significant gaps for a tool that likely interacts with a model database.

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

Conciseness5/5

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

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

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails in the return values, nor does it address behavioral aspects like error handling or data freshness. Given the complexity implied by sibling tools (e.g., versioning, searching), more context is needed for effective use.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting the 'modelId' parameter as a number. The description adds minimal value beyond this, only reinforcing that it retrieves information 'by ID'. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't provide additional semantic context.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a specific model by ID'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_model_version' or 'get_latest_models', which could also retrieve model information in different contexts.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get_models_by_type', 'search_models', or 'get_model_version'. The description implies usage for retrieving details of a known model ID, but lacks explicit when/when-not instructions or references to sibling tools.

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

get_models_by_typeC

Get models filtered by type (Checkpoint, LORA, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of models to return (default: 20)
sortNoSort order for results
typeYesModel type to filter by

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic filtering functionality without mentioning any behavioral traits such as pagination, rate limits, authentication requirements, or what happens when no models match the type. This leaves significant gaps in understanding how the tool behaves in practice.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool with 3 parameters. It doesn't explain return values, error conditions, or behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.

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

Parameters3/5

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

The input schema has 100% description coverage, providing clear details for all parameters including enums and defaults. The description adds minimal value by mentioning 'type' filtering but doesn't elaborate on parameter interactions or usage beyond what the schema already documents, aligning with the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('models') with specific filtering criteria ('by type'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'search_models' or 'get_latest_models' that might also retrieve models with different filtering approaches, missing full sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_models' or 'get_popular_models'. It mentions filtering by type but doesn't specify contexts where this is preferred over other filtering methods, leaving the agent without clear usage direction.

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

get_model_versionC

Get detailed information about a specific model version

ParametersJSON Schema
NameRequiredDescriptionDefault
modelVersionIdYesThe ID of the model version to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get detailed information' implies a read-only operation, it doesn't specify what 'detailed information' includes, whether authentication is required, rate limits, error conditions, or the format of the returned data. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves 'detailed information'. It doesn't specify what information is returned, potential errors, or usage context, leaving the agent with insufficient guidance to effectively use the tool beyond the basic parameter requirement.

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

Parameters3/5

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

The schema description coverage is 100%, with the single parameter 'modelVersionId' clearly documented in the schema. The description adds no additional meaning beyond what the schema provides, such as examples of valid IDs or context about where to find them. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Get detailed information') and the target ('about a specific model version'), which is a specific verb+resource combination. However, it doesn't distinguish this tool from similar siblings like 'get_model' or 'get_model_version_by_hash', which likely retrieve related information about models or model versions.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'get_model', 'get_latest_models', and 'get_model_version_by_hash', there's no indication of when this specific tool is appropriate or what differentiates it from others in the context.

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

get_model_version_by_hashC

Get model version information by file hash

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesThe hash of the model file (AutoV1, AutoV2, SHA256, CRC32, or Blake3)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral context. It states it 'gets' information (implying read-only), but doesn't disclose error handling (e.g., invalid hash formats), authentication needs, rate limits, or response format. For a lookup tool with zero annotation coverage, this is inadequate.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It front-loads the core purpose ('Get model version information') and specifies the key constraint ('by file hash') directly. Every word earns its place.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'model version information' includes (e.g., metadata, download links, ratings) or behavioral aspects like error cases. For a tool that likely returns structured data, more context 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.

Parameters3/5

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

Schema description coverage is 100%, with the hash parameter fully documented in the schema (including supported hash types). The description adds no parameter details beyond what the schema provides, so it meets the baseline of 3 when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'model version information', specifying the lookup method 'by file hash'. It distinguishes from siblings like 'get_model_version' (likely by ID) and 'get_model' (likely by name). However, it doesn't explicitly contrast with all siblings, keeping it at 4 rather than 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when hash-based lookup is appropriate compared to ID-based ('get_model_version'), name-based ('get_model'), or other search methods. There's no context about prerequisites or limitations.

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

get_tagsC

Browse and search for model tags on Civitai

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of tags to return (1-200, default 20)
pageNoPage number for pagination
queryNoSearch query to filter tags by name

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'browse and search' but doesn't clarify if this is a read-only operation, how pagination works beyond the schema, or any rate limits or authentication needs. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., tag lists, metadata), how results are structured, or any behavioral nuances like error handling. For a tool with 3 parameters and no structured output, this leaves critical gaps for an agent.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting the 'limit', 'page', and 'query' parameters. The description adds no additional meaning beyond what the schema provides, such as examples of search queries or tag formats, so it meets the baseline score for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('browse and search') and resource ('model tags on Civitai'), making the purpose evident. However, it doesn't explicitly differentiate this tool from sibling tools like 'search_models_by_tag', which might also involve tags, leaving some ambiguity about its unique role.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'search_models_by_tag' available, there's no indication of whether this tool is for general tag exploration or specific use cases, leaving the agent to guess based on context.

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

get_top_rated_modelsC

Get the highest rated models

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of models to return (default: 20)
periodNoTime period for rating ranking (default: AllTime)

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get') but lacks details on permissions, rate limits, pagination, or response format. While it implies a ranking based on ratings, it does not specify how ratings are calculated or if the tool is safe/read-only, leaving significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words, making it easy to parse. However, it is front-loaded but overly brief, potentially under-specifying the tool's purpose without sacrificing clarity in its minimal form.

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

Completeness2/5

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

Given the tool's complexity (a ranking query with parameters) and lack of annotations or output schema, the description is incomplete. It fails to explain what 'highest rated' means, how results are sorted, or what the return structure entails, leaving critical context gaps for effective agent use.

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

Parameters3/5

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

The input schema has 100% description coverage, documenting both parameters ('limit' and 'period') with details like defaults and enum values. The description adds no additional meaning beyond the schema, as it does not explain parameter usage or interactions. Baseline 3 is appropriate since the schema adequately covers parameter semantics.

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

Purpose3/5

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

The description 'Get the highest rated models' states a clear verb ('Get') and resource ('highest rated models'), establishing a basic purpose. However, it lacks specificity about what constitutes 'highest rated' (e.g., based on user ratings, downloads, or other metrics) and does not differentiate from siblings like 'get_popular_models' or 'get_latest_models', leaving ambiguity in scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or comparisons to sibling tools such as 'get_popular_models' or 'get_latest_models', offering no context for selection among similar list-retrieval functions.

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

search_modelsC

Search for AI models on Civitai with various filters

ParametersJSON Schema
NameRequiredDescriptionDefault
baseModelsNoFilter by base model types (e.g., ["SD 1.5", "SDXL 1.0"])
limitNoNumber of results (1-100, default 20)
nsfwNoInclude NSFW content
pageNoPage number for pagination
periodNoTime period for sorting
queryNoSearch query to filter models by name
sortNoSort order for results
typesNoFilter by model types

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic function without mentioning important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior (implied by the 'page' parameter but not explained), or what the response format looks like.

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

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a search tool and front-loads the core functionality.

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

Completeness2/5

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

For a search tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the relationship to sibling tools, doesn't describe the return format, and provides minimal behavioral context. The agent would struggle to use this effectively without trial and error.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly with descriptions, constraints, and enums. The description adds no additional parameter information beyond what's in the schema, meeting the baseline expectation when schema coverage is complete.

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

Purpose4/5

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

The description clearly states the action ('Search for AI models') and the resource ('on Civitai'), making the purpose understandable. However, it doesn't distinguish this tool from its many siblings (like get_latest_models, get_popular_models, search_models_by_creator, etc.), which all involve retrieving models with different approaches.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the numerous sibling tools. It mentions 'various filters' but doesn't explain when filtered searching is preferable to the more specific sibling tools like get_latest_models or search_models_by_creator.

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

search_models_by_creatorC

Search for models by a specific creator

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of models to return (default: 20)
sortNoSort order for results
usernameYesCreator username to search for

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Search') but doesn't describe what the search returns (e.g., list of models with metadata), whether it's paginated, rate-limited, or requires authentication. This leaves significant gaps in understanding the tool's behavior beyond the basic operation.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the main action and resource, making it easy to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a search tool. It doesn't explain what the return values are (e.g., model objects, metadata), how results are structured, or any behavioral traits like pagination or error handling. This leaves the agent with insufficient context to use the tool effectively.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters (username, limit, sort) with descriptions and constraints. The description adds no additional meaning beyond implying the username parameter is central, which is already clear from the schema. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('Search') and resource ('models') with a specific filter criterion ('by a specific creator'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_models' or 'get_creators', which would require more specific language about scope or output format.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'search_models', 'get_creators', and 'get_latest_models', there's no indication of when this specific creator-based search is preferred or what distinguishes it from other search or retrieval tools.

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

search_models_by_tagC

Search for models by a specific tag

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of models to return (default: 20)
sortNoSort order for results
tagYesTag name to search for

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches for models but doesn't describe what 'models' are in this context, how results are returned (e.g., pagination, format), or any limitations (e.g., rate limits, authentication needs). This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

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

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'models' are, how results are structured, or any behavioral traits like error handling. For a search tool with no structured context, more detail is needed to adequately inform an agent.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for all parameters (limit, sort, tag). The description adds minimal value beyond the schema, as it only mentions the 'tag' parameter without providing additional context or meaning. This meets the baseline score of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Search') and resource ('models'), and specifies the search criterion ('by a specific tag'). However, it doesn't explicitly differentiate from sibling tools like 'search_models' or 'search_models_by_creator', which reduces clarity about when to use this specific search variant.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_models' or 'search_models_by_creator'. It mentions the search criterion ('by a specific tag') but doesn't explain when tag-based searching is preferred over other search methods available in the sibling tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedbrowse_images
    • First observedget_creators
    • First observedget_download_url
    • First observedget_latest_models
    • First observedget_model
    • First observedget_model_version
    • First observedget_model_version_by_hash
    • First observedget_models_by_type
    • First observedget_popular_models
    • First observedget_tags
    • First observedget_top_rated_models
    • First observedsearch_models
    • First observedsearch_models_by_creator
    • First observedsearch_models_by_tag

TDQS

B3.3/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct purposes focused on different aspects of the Civitai platform (browsing images, getting creators, downloading models, searching with various filters). However, there is some overlap between search_models, search_models_by_creator, and search_models_by_tag that could potentially cause confusion about which to use for specific search scenarios.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with clear, descriptive names. The naming convention is uniform throughout (get_, browse_, search_) with no mixing of styles or conventions.

Tool Count5/5

14 tools is well-scoped for a Civitai server covering models, creators, tags, and images. Each tool appears to serve a specific purpose within the domain without obvious redundancy or bloat.

Completeness4/5

The toolset provides comprehensive coverage for browsing, searching, and retrieving information about models, creators, tags, and images. Minor gaps might include operations like creating or updating content (if the API supports it), but for a read-only browsing interface, the coverage is quite complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with fal.ai AI models through MCP, supporting model discovery, content generation, queue management, and file uploads to the fal.ai platform.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Civitai API to search for AI models, browse images, and access creator information. It provides tools for filtering models by popularity, rating, or type and retrieving detailed version metadata.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A comprehensive MCP server for interacting with the Civitai API to search models, browse images with generation prompts, and manage downloads. It features extensive support for various base models like SDXL and Flux, includes NSFW filtering, and provides automated download commands for ComfyUI.
    21
    21
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI agents to fully interact with the Civitai platform, including browsing models, images, and creators; posting, reacting, reviewing, following, collecting, writing articles and comments; sending DMs; and managing bounties and announcements.
    1
    Apache 2.0