Skip to main content
Glama
yincongcyincong

VictoriaMetrics-mcp-server

VictoriaMetrics MCP Server

MCP Server for the VictoriaMetrics.

Installing via Smithery

To install VictoriaMetrics Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @yincongcyincong/victoriametrics-mcp-server --client claude

Debug

npx @modelcontextprotocol/inspector -e VM_URL=http://127.0.0.1:8428  node src/index.js

NPX

{
    "mcpServers": {
        "victoriametrics": {
            "command": "npx",
            "args": [
                "-y",
                "@yincongcyincong/victoriametrics-mcp-server"
            ],
            "env": {
                "VM_URL": "",
                "VM_SELECT_URL": "",
                "VM_INSERT_URL": ""
            }
        }
    }
}

📊 VictoriaMetrics Tools API Documentation

Related MCP server: ClickHouse MCP Server

1. vm_data_write

Description: Write data to the VictoriaMetrics database.

Input Parameters:

Parameter

Type

Description

Required

metric

object

Tags of the metric

values

number[]

Array of metric values

timestamps

number[]

Array of timestamps in Unix seconds


2. vm_prometheus_write

Description: Import Prometheus exposition format data into VictoriaMetrics.

Input Parameters:

Parameter

Type

Description

Required

data

string

Metrics in Prometheus exposition format


3. vm_query_range

Description: Query time series data over a specific time range.

Input Parameters:

Parameter

Type

Description

Required

query

string

PromQL expression

start

number

Start timestamp in Unix seconds

⛔️

end

number

End timestamp in Unix seconds

⛔️

step

string

Query resolution step width (e.g., 10s, 1m)

⛔️

Only query is required; the other fields are optional.


4. vm_query

Description: Query the current value of a time series.

Input Parameters:

Parameter

Type

Description

Required

query

string

PromQL expression to evaluate

time

number

Evaluation timestamp in Unix seconds

⛔️


5. vm_labels

Description: Get all unique label names.

Input Parameters: None


6. vm_label_values

Description: Get all unique values for a specific label.

Input Parameters:

Parameter

Type

Description

Required

label

string

Label name to get values for


Available Tools

6 tools
vm_data_writeC

Write data to the VM database

ParametersJSON Schema
NameRequiredDescriptionDefault
metricYestag of metric
valuesYesArray of metric values
timestampsYesArray of metric timestamps

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Write data' implying a mutation operation, but doesn't disclose behavioral traits like required permissions, whether writes are idempotent, rate limits, or error handling. This leaves significant gaps for a write tool with no structured safety hints.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool name, though it could be more informative given the lack of annotations.

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

Completeness2/5

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

Given the complexity (a write operation with 3 required parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't cover return values, error cases, or behavioral context, leaving the agent under-informed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no meaning beyond the schema—it doesn't explain relationships between metric, values, and timestamps, or provide examples. Baseline 3 is appropriate as the schema does the heavy lifting.

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 'Write data to the VM database' clearly states the action (write) and target (VM database), but it's vague about what type of data is written. It distinguishes from sibling tools like vm_query (read operations) but doesn't specify that it writes metric data specifically, which the schema reveals.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, when-not scenarios, or compare to siblings like vm_prometheus_write (which might be for different data formats or protocols). The agent must infer usage from the name and schema alone.

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

vm_labelsB

Get all unique label names

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't mention any behavioral traits such as permissions needed, rate limits, or response format. This leaves significant gaps in understanding how the tool behaves.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without any structural issues or redundancy.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns data. It doesn't explain what 'all unique label names' entails (e.g., format, scope, or limitations), leaving the agent without enough context to understand the full tool behavior or output.

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

Parameters4/5

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

The tool has 0 parameters, and the schema description coverage is 100%, so no parameter information is needed. The description appropriately doesn't add unnecessary details, aligning with the lack of inputs, which justifies a baseline score of 4 for this dimension.

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 ('all unique label names'), making the tool's purpose understandable. However, it doesn't differentiate from sibling tools like 'vm_label_values', which might retrieve label values rather than names, leaving some ambiguity about sibling relationships.

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 'vm_label_values' or other sibling tools. The description lacks context about use cases, prerequisites, or exclusions, offering minimal help for an AI agent in selecting the right tool.

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

vm_label_valuesC

Get all unique values for a specific label

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesLabel name to retrieve values for

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 a read operation ('Get'), but does not cover aspects like rate limits, authentication requirements, error handling, or the format of returned values. 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, clear sentence with no wasted words, making it highly concise and front-loaded. It efficiently conveys the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., list format, data types) or address behavioral aspects like performance or errors, which are crucial for a tool with no structured output information.

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, with the 'label' parameter documented as 'Label name to retrieve values for'. The description adds no additional meaning beyond this, such as examples or constraints, so it meets the baseline for high schema coverage without compensating further.

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 'all unique values for a specific label', making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'vm_labels' (which might list labels rather than values), leaving some ambiguity in sibling context.

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 such as 'vm_labels' or 'vm_query', nor does it mention prerequisites or exclusions. It lacks explicit usage context, relying solely on the implied need to retrieve label values.

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

vm_prometheus_writeC

mport Prometheus exposition format data into VictoriaMetrics

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesMetrics data in Prometheus exposition format

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 imports data, implying a write/mutation operation, but fails to describe critical behaviors like error handling, rate limits, idempotency, or what happens on success/failure. This leaves significant gaps for an agent to understand how to invoke it safely.

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 function without any wasted words. It is front-loaded with the core action and resource, making it easy to parse and understand quickly.

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

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 as a data import/write operation with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits, error handling, and usage context, which are essential for an agent to operate this tool effectively in a real-world scenario.

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 'data' fully documented in the schema as 'Metrics data in Prometheus exposition format'. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating with extra details.

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 ('import') and the resource ('Prometheus exposition format data into VictoriaMetrics'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like vm_data_write, which prevents a perfect score, but the specificity of 'Prometheus exposition format' provides useful context.

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 vm_data_write or other sibling tools. It lacks context about prerequisites, such as whether data must be formatted in a specific way or if authentication is required, leaving the agent with minimal usage direction.

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

vm_queryC

Query current value of a time series

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPromQL expression to evaluate
timeNoEvaluation timestamp in Unix seconds (optional)

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 queries 'current value' but doesn't explain what 'current' means (e.g., real-time vs. latest data), whether it's read-only or has side effects, error handling, rate limits, or authentication needs. For a query tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, clear sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple query tool. Every word earns its place without redundancy or unnecessary elaboration.

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

Completeness2/5

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

Given the complexity of a time-series query tool with no annotations, no output schema, and sibling tools for related operations, the description is incomplete. It doesn't cover return values, error cases, or how it differs from 'vm_query_range'. For a tool that likely returns structured data, 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.

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 both parameters ('query' as PromQL expression and 'time' as optional Unix timestamp). The description adds no additional parameter semantics beyond what's in the schema, such as query format examples or time interpretation. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose as 'Query current value of a time series' with a specific verb ('Query') and resource ('current value of a time series'). It distinguishes from sibling tools like 'vm_query_range' (range queries) and 'vm_data_write' (write operations), though it doesn't explicitly mention these distinctions in the description text itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'vm_query_range' for range queries or 'vm_labels' for metadata queries, nor does it specify use cases, prerequisites, or exclusions. The agent must infer usage from the tool name and schema alone.

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

vm_query_rangeC

Query time series over a time range

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPromQL expression
startNoStart timestamp in Unix seconds
endNoEnd timestamp in Unix seconds
stepNoQuery resolution step width

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 provides minimal behavioral information. It states it's a query operation (implying read-only) but doesn't disclose rate limits, authentication requirements, error conditions, or what happens with invalid queries. For a time series query tool with 4 parameters, this leaves significant behavioral unknowns.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with good schema documentation and gets straight to the core functionality without unnecessary elaboration.

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

Completeness2/5

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

For a time series query tool with 4 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what the tool returns (time series data format), error handling, performance characteristics, or limitations. The combination of no annotations and no output schema means the description should provide more operational context than it does.

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 all parameters are documented in the schema. The description adds minimal value beyond the schema - it mentions 'time range' which aligns with 'start' and 'end' parameters, but doesn't provide additional context about parameter relationships or usage patterns. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description 'Query time series over a time range' clearly states the action (query) and resource (time series) with scope (over a time range). It distinguishes from sibling tools like 'vm_data_write' (write operation) and 'vm_labels' (metadata query), but doesn't explicitly differentiate from 'vm_query' which likely has different temporal parameters.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention when to choose this over 'vm_query' (the most similar sibling) or other time series querying approaches. There's no context about appropriate use cases or limitations.

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

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: writing data, retrieving metadata about labels, querying current values, and querying over time ranges. The descriptions make it easy to differentiate between tools like vm_query (current value) and vm_query_range (time range).

Naming Consistency5/5

All tools follow a consistent 'vm_' prefix with snake_case naming, using descriptive verb_noun patterns (e.g., vm_data_write, vm_query_range). There are no deviations in style or convention across the set.

Tool Count5/5

With 6 tools, this is well-scoped for a VictoriaMetrics server, covering core operations like data ingestion, label exploration, and querying without being overwhelming. Each tool earns its place in the workflow.

Completeness4/5

The toolset covers essential CRUD-like operations for time series data: writing (vm_data_write, vm_prometheus_write), reading (vm_query, vm_query_range), and metadata exploration (vm_labels, vm_label_values). A minor gap might be the lack of explicit deletion or update tools, but agents can work around this given the domain's typical usage patterns.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yincongcyincong/VictoriaMetrics-mcp-server'

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