io.github.GreptimeTeam/greptimedb-mcp-server
PYPI · GREPTIMEDB-MCP-SERVER · SCANNED SEP 21
Query GreptimeDB metrics, logs and traces with SQL, TQL and RANGE. Manage pipelines and dashboards.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 1 of 41 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 6 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1914 tokens (~127/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage78
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 25% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_sql" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
How do I install the io.github.GreptimeTeam/greptimedb-mcp-server server?
io.github.GreptimeTeam/greptimedb-mcp-server runs locally as a PyPI package, launched with uvx greptimedb-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · greptimedb-mcp-server
claude mcp add greptimeteam-greptimedb-mcp-server -- uvx greptimedb-mcp-server
{
"mcpServers": {
"greptimeteam-greptimedb-mcp-server": {
"command": "uvx",
"args": [
"greptimedb-mcp-server"
]
}
}
} {
"servers": {
"greptimeteam-greptimedb-mcp-server": {
"command": "uvx",
"args": [
"greptimedb-mcp-server"
]
}
}
} codex mcp add greptimeteam-greptimedb-mcp-server -- uvx greptimedb-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"greptimeteam-greptimedb-mcp-server": {
"type": "local",
"command": [
"uvx",
"greptimedb-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add greptimeteam-greptimedb-mcp-server --command uvx --arg greptimedb-mcp-server
mcp_servers:
greptimeteam-greptimedb-mcp-server:
command: "uvx"
args: ["greptimedb-mcp-server"] {
"McpServers": {
"greptimeteam-greptimedb-mcp-server": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"greptimedb-mcp-server"
]
}
}
} assistant mcp add greptimeteam-greptimedb-mcp-server -t stdio -c uvx -a greptimedb-mcp-server
{
"mcpServers": {
"greptimeteam-greptimedb-mcp-server": {
"command": "uvx",
"args": [
"greptimedb-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 18 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 17 Sept 26 0
- Security disclosure: fail → unverified ▼ functional
- 15 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 +13
- Malware scan: pass → unverified ▼ security
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 25 functional
- First check of Destructive annotations: 0 functional
- First check of Schema quality: good functional
- First check of Tool coverage: 100 functional
- Package version: 0.4.7 → 0.6.0 functional
- 7 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 6 Sept 26 0
- Security disclosure: fail → unverified ▼ functional
- 27 Aug 26 0
- Security disclosure: unverified → fail ▼ functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed pypi/greptimedb-mcp-server@0.6.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 41 packages
| Packages resolved | 41 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_dashboard ~35
Create or update a Perses dashboard definition in GreptimeDB.
| Name | Type | Req | Description |
|---|---|---|---|
| definition | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_pipeline ~31
Create a new pipeline in GreptimeDB.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| pipeline | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
delete_dashboard ~26
Delete a Perses dashboard definition from GreptimeDB.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
delete_pipeline ~34
Delete a specific version of a pipeline from GreptimeDB.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| version | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
describe_table ~221
Get a table profile: schema, semantic metadata, sample rows, and guidance. Use it when deciding how to query an unfamiliar table. When the right table is not known yet, search_table_semantics first; describing candidates one by one is slower than querying the data. The semantic profile says what the table means, not what its data says. signal_type is metric, log, trace, or event; source and source_version name the ingestion protocol; pipeline names the schema that shaped the rows; semantic_options carries signal-specific facts such as metric type and unit. metadata_quality describes how the metric type was obtained -- `declared` by the protocol or `inferred` from the name -- and says nothing about telemetry quality. entity_declarations lists the entities the table contributes to the semantic graph. A null or missing semantic field means unknown, not the opposite fact.
| Name | Type | Req | Description |
|---|---|---|---|
| include_samples | boolean | – | – |
| include_semantics | boolean | – | – |
| sample_limit | integer | – | – |
| table | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
dryrun_pipeline ~133
Test a pipeline with sample data without writing to the database. You can test a pipeline in two ways: - Provide 'pipeline' with inline YAML configuration - Provide 'pipeline_name' to test a previously saved pipeline Args: pipeline: Pipeline YAML configuration (inline) pipeline_name: Name of saved pipeline (mutually exclusive with pipeline) data: Test data in JSON/NDJSON format data_type: Optional content type (e.g., 'application/x-ndjson')
| Name | Type | Req | Description |
|---|---|---|---|
| data | string | – | – |
| data_type | – | – | – |
| pipeline | – | – | – |
| pipeline_name | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
execute_sql ~81
Execute SQL query against GreptimeDB. Please use MySQL dialect. Read-only by default. When the server runs with write mode enabled (--allow-write / GREPTIMEDB_ALLOW_WRITE), destructive SQL (DDL/DML) is also permitted.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| limit | integer | – | – |
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
execute_tql ~72
Execute TQL query for time-series analysis. TQL is PromQL-compatible - use standard PromQL syntax.
| Name | Type | Req | Description |
|---|---|---|---|
| end | string | yes | – |
| format | string | – | – |
| lookback | – | – | – |
| query | string | yes | – |
| start | string | yes | – |
| step | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
explain_query ~38
Analyze SQL or TQL query execution plan.
| Name | Type | Req | Description |
|---|---|---|---|
| analyze | boolean | – | – |
| query | string | yes | – |
| verbose | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
health_check ~18
Check GreptimeDB connection status and server version.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_dashboards ~21
List all Perses dashboard definitions stored in GreptimeDB.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_pipelines ~25
List all pipelines or get details of a specific pipeline.
| Name | Type | Req | Description |
|---|---|---|---|
| name | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
query_range ~78
Execute time-window aggregation query using GreptimeDB's RANGE query syntax.
| Name | Type | Req | Description |
|---|---|---|---|
| align | string | yes | – |
| by | – | – | – |
| fill | – | – | – |
| format | string | – | – |
| limit | integer | – | – |
| order_by | – | – | – |
| select | string | yes | – |
| table | string | yes | – |
| where | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
query_semantic_graph ~817
Query the semantic graph: which entities exist and which are related. Use view=summary when the entity and relationship types in this graph are not known yet; it reports them with the endpoint type pairs each relationship connects. With a type or an id already in hand, query entities or relationships directly. The window is required and half-open, [start_time, end_time), over observed_at -- the 60-second bucket an observation was recorded in. Rows are aggregated across the buckets in the window, and the result echoes the window and the limit it used. relationships returns one row per edge per confidence. The database reports confidence 1.0 for a bucket whose client and server spans paired and 0.5 for one where only the client was seen, and it switches request_count, error_count and the durations to whichever population that bucket describes: paired requests timed by the server span, or unmatched clients timed by their own. An edge observed both ways therefore comes back as two rows. unmatched_count reports client spans with no paired server span. Durations are in seconds. entities returns one row per distinct set of attributes, so an entity whose descriptive attributes changed inside the window appears more than once; item_count counts rows, not entities. first_seen and last_seen bound where the row was observed inside this window, not when the entity first existed. Ordering is by type and endpoint. Only `calls` edges carry request, error and duration counts, so pass rel_type=calls to order by error and request count instead. When complete is false, more rows matched than the limit and later types may be absent entirely rather than merely cut short. A missing edge is not evidence that two entities are unrelated: it can also mean the call was not instrumented, was sampled out, or fell outside this window. Entities are not deduplicated across identity schemes, so one process can appear under two ids if two sources named it differently. entity_id_attrs names th…
| Name | Type | Req | Description |
|---|---|---|---|
| dst_id | – | – | relationships only: a canonical destination id this graph returned. |
| dst_type | – | – | relationships only: destination endpoint type. |
| end_time | string | yes | Exclusive end of the window, RFC3339. |
| entity_id | – | – | entities only: a canonical id this graph returned. |
| entity_type | – | – | entities only: service, k8s.pod, host, ... |
| limit | integer | – | Maximum rows to return. |
| provenance | – | – | relationships only: how the edge was obtained -- trace (paired spans), attribute (identities on one row), declared, or agent. |
| rel_type | – | – | relationships only: calls, runs_on, contains, part_of, uses, invokes, depends_on, owns, or a custom declared value. |
| scope | – | – | entities only: the namespace or environment an id is scoped to. |
| src_id | – | – | relationships only: a canonical source id this graph returned. |
| src_type | – | – | relationships only: source endpoint type. |
| start_time | string | yes | Inclusive start of the window, RFC3339, e.g. 2026-09-05T07:00:00Z. Without an offset it is read as UTC. |
| view | string | yes | summary: which entity and relationship types exist and what they connect. entities: the nodes. relationships: the edges. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
search_table_semantics ~265
Find tables by observability concept when the right table name is unknown. Searches table names, semantic options, and entity declarations, and ranks tables by how many query terms they matched. Use it before describe_table when the schema is wide or table names do not say what they hold. It searches schema metadata only, never telemetry row values, so it can say which table holds Redis memory usage but not which row belongs to `Redis02`. It ranks on the values in that metadata, not on the schema's own key names, so search for `gauge` or `bytes` rather than `metric type`. Once it returns candidates, query their data or describe one of them; do not describe every candidate in turn. It covers only the database this server is connected to, unlike describe_table, which accepts a schema-qualified name. Only tables carrying a `greptime.semantic.*` option, or one a built-in convention derives a declaration for, are visible here. A table absent from the results may still exist and hold the data, so fall back to SHOW TABLES rather than concluding it is not there.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
| signal_type | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the io.github.GreptimeTeam/greptimedb-mcp-server server?
io.github.GreptimeTeam/greptimedb-mcp-server is listed in the public MCP registry as io.github.GreptimeTeam/greptimedb-mcp-server. Query GreptimeDB metrics, logs and traces with SQL, TQL and RANGE. Manage pipelines and dashboards. This page covers its PyPI package (greptimedb-mcp-server).
Is the io.github.GreptimeTeam/greptimedb-mcp-server server safe to use?
io.github.GreptimeTeam/greptimedb-mcp-server scores 67 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.GreptimeTeam/greptimedb-mcp-server server expose?
io.github.GreptimeTeam/greptimedb-mcp-server exposes 15 tools: execute_sql, describe_table, search_table_semantics, query_semantic_graph, health_check, and 10 more. Their descriptions and schemas cost roughly 1,895 tokens of context every time the server is loaded.
Is the io.github.GreptimeTeam/greptimedb-mcp-server server still maintained?
io.github.GreptimeTeam/greptimedb-mcp-server is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.GreptimeTeam/greptimedb-mcp-server server under?
io.github.GreptimeTeam/greptimedb-mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.