Skip to main content
Glama
siffletdata

sifflet-mcp

Official
by siffletdata

Sifflet MCP Server

An MCP (Model Context Protocol) server that enables data observability operations with the Sifflet platform.

Features

This project provides an MCP server enabling interactions with Sifflet API :

  • Explore assets: Search for tables, views, dashboards, and other data assets. View their schema, owners, tags, and their metadata.

  • Explore monitors: Discover existing monitors and generate their Monitor-as-Code YAML configurations.

  • Generate new monitors from a description: turn a plain-English requirement (e.g. "alert when row count drops below 1000 on the 'orders' table") into a Monitor-as-Code YAML snippet for a given list of datasets. Requires Editor role on the targeted domain.

  • Explore incidents: List all data observability incidents detected by the Sifflet platform.

  • Perform impact analysis: Start from an incident and trace the downstream assets affected.

Related MCP server: Bigeye MCP Server

Sample Use Cases

Here are a few scenarios where the Sifflet MCP Server can be particularly helpful:

  • Understanding Downstream Impact: You're modifying a dbt model and need to identify the owners of dependent downstream models and dashboards. The MCP server can provide these details, allowing you to proactively notify them about your upcoming changes.

  • Accessing Up-to-Date Table Metadata: You're about to update a table in your data warehouse. Before you proceed, you can query the MCP server to get its latest metadata. This includes information on how the table is currently monitored in Sifflet, whether it's involved in any ongoing incidents, the list of its frequent users, and other relevant operational details.

  • Bootstrapping New Asset Monitoring: You're creating a new table (or dbt model) and want to ensure it's well-monitored from the start. You can ask the MCP server to list the Sifflet monitors already created for similar existing assets. The server can then provide the Monitor-as-Code YAML configurations, which you can adapt and deploy.

  • Generating a Monitor from a Description: You want to export the YAML configuration of a Monitor you want to create (e.g. "alert when row count drops below 1000 on the 'orders' table"). The get_monitor_code_by_description tool returns a Monitor-as-Code YAML snippet for a given list of datasets that you can adapt and commit. Note: requires Editor role on the targeted domain (see Prerequisites).

Usage

Prerequisites

  • uv (Python package installer/environment manager)

      # uv installation script for Linux/MacOS
      curl -LsSf https://astral.sh/uv/install.sh | sh
  • A Sifflet backend running locally or remotely. You will need the following information:

    • SIFFLET_API_TOKEN: see how to generate one. A token with the Viewer role is enough for most tools. The get_monitor_code_by_description tool additionally requires Editor role on the targeted domain. If you plan to use that tool, generate a token with Editor access on that domain.

    • SIFFLET_BACKEND_URL: Full URL to the Sifflet backend for instance: https://<tenant_name>.siffletdata.com/api/

Using with MCP Clients

Cursor

Add the following configuration in the mcp.json. Follow Cursor instructions to set it up.

{
  "mcpServers": {
    "mcp_server_sifflet": {
      "command": "uvx",
      "args": ["sifflet-mcp@latest"],
      "env": {
        "SIFFLET_API_TOKEN": "<access_token>",
        "SIFFLET_BACKEND_URL": "https://<tenant_name>.siffletdata.com/api/"
      }
    }
  }
}

Note: You may need to use the full path to the uvx executable in the command field. You can find the full path by running which uvx in your terminal.

Claude Desktop

Follow the instructions in the Claude documentation to set up claude_desktop_config.json.

Then, add the following configuration to your claude_desktop_config.json file:

{
  "mcpServers": {
    "sifflet-mcp": {
      "command": "uvx",
      "args": ["sifflet-mcp@latest"],
      "env": {
        "SIFFLET_API_TOKEN": "<access_token>",
        "SIFFLET_BACKEND_URL": "https://<tenant_name>.siffletdata.com/api/"
      }
    }
  }
}

Note: You may need to use the full path to the uvx executable in the command field. You can find the full path by running which uvx in your terminal.

Contributing

For development setup and contribution guidelines, please see CONTRIBUTING.md.

Reporting Problems

If you encounter any problems or have a bug to report, please feel free to open an issue on this GitHub repository. Alternatively, you can reach out to your Sifflet Customer Success team.

Available Tools

10 tools
asset_by_urnA
    Get asset information by urn. The urn is the unique identifier a asset, for example dataset:0826ce5c-7027-4857-aa47-b639265d1867. It can be found when you search for an asset.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
asset_urnYes

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits such as what information is returned, whether it performs a read-only operation, and any potential errors. The description only says 'Get asset information' without elaborating on scope or response details, leaving significant behavioral ambiguity.

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 two sentences, front-loaded with the main purpose, and contains no redundant phrases. It efficiently conveys the core idea and an illustrative example without waste.

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

Completeness3/5

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

For a simple lookup tool with no output schema, the description covers the essential input and source of the urn, but it lacks details on what 'asset information' includes or what the response looks like. Given the simplicity of the tool, this is acceptable but not thorough, so it earns a middling score.

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

Parameters4/5

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

The input schema only defines asset_urn as a string with no description. The tool description adds meaningful detail by explaining that the urn is a unique identifier and providing an example format (dataset:...). This goes beyond the schema's minimal type definition, though it could still be more precise about accepted formats or variations.

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

Purpose5/5

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

The description clearly states the verb and resource: 'Get asset information by urn.' It differentiates from siblings like search_asset by specifying the lookup mechanism (urn) and notes the urn is a unique identifier, which helps distinguish it from other asset-related tools.

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

Usage Guidelines4/5

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

The description provides context that the urn can be found from a search, implying when to use this tool (when you have the urn) versus search_asset (when you don't). However, it does not explicitly mention alternatives or exclusions, so it earns a 4 rather than a 5.

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

close_incident_by_idA
    Close an incident by id. The id is the unique identifier of the incident, for example 1234.
    The should_qualify_monitor is a boolean that indicates if the monitor should be qualified or not.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
incident_idYes
should_qualify_monitorYes

TDQS

A3.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 must disclose behavioral traits on its own. It explains parameter meanings but does not mention side effects, permissions, reversibility, or the outcome of closing an incident. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is two concise sentences, front-loading the primary action and then explaining the second parameter. There is no redundant or verbose language; every sentence contributes to understanding.

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

Completeness3/5

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

Given it is a simple tool with two parameters and no output schema, the description explains the action and parameters adequately. However, it omits behavioral details such as idempotency, effects on the incident, or return values, leaving some uncertainty for an agent. It covers the basics but not the full context.

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

Parameters4/5

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

The input schema has no parameter descriptions (0% coverage), so the description compensates by defining incident_id as a unique identifier with an example and explaining should_qualify_monitor as a boolean for monitor qualification. This covers both parameters, though it leaves some domain-specific details unstated.

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

Purpose5/5

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

The description clearly states 'Close an incident by id' with an example, which is a specific verb+resource. This distinguishes it from sibling tools like open_incident_by_id, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by stating the action, but it provides no explicit guidance on when to use this tool versus alternatives (e.g., open_incident_by_id) or any exclusions. The intended use is inferable from the tool name and description, so it is not entirely absent.

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

get_downstream_assets_of_assetA
      Get all downstream assets of an asset. An Urn is the unique identifier of an asset, for example dataset:0826ce5c-7027-4857-aa47-b639265d1867. It can be found when you search for an asset.
      
ParametersJSON Schema
NameRequiredDescriptionDefault
urnYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It only states what the tool does, not details like whether it's read-only, what constitutes 'downstream' (immediate vs transitive), or if pagination or limits apply. The description adds an example of an urn but no behavioral traits beyond the core action.

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?

Two sentences with no fluff. The first states the core purpose, and the second adds necessary parameter context with an example. It's appropriately sized and front-loaded.

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

Completeness3/5

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

For a simple one-parameter tool, the description covers the action and parameter well, but it lacks information about the return value or semantics of 'downstream'. It might be sufficient for a simple use case, but given no output schema, a hint about what the response contains would improve completeness.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains what an Urn is, provides an example format, and tells how to obtain it ('It can be found when you search for an asset'). This adds meaningful context beyond the schema's bare 'string' type.

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

Purpose5/5

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

The first sentence clearly states the verb and resource: 'Get all downstream assets of an asset.' This distinguishes it from sibling tools like asset_by_urn (single asset) and search_asset (search), as it focuses on downstream assets.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. It does explain how to obtain the urn (by searching for an asset), but that's a prerequisite, not a usage context. There's no mention of 'use this to see dependencies' or comparisons with sibling tools.

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

get_incident_by_issue_numberA

Get incident details by issue number. The issue number is the unique identifier of the incident, for example 1234.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_nbrYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior, but it only restates the action. It does not mention side effects, error behavior, permissions, or return format. For a read operation, it doesn't confirm read-only status or handle edge cases, so it provides minimal behavioral insight.

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?

Two short sentences, front-loaded with the action. No filler or redundant explanation, earning a perfect score for conciseness and structure.

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

Completeness4/5

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

For a simple one-parameter lookup, the description covers the essential purpose. It could mention what happens on not-found or the return structure, but given the simplicity, it is largely adequate. No output schema or annotations increase the burden slightly, so a 4 is appropriate.

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 explains that issue number is a unique identifier and gives an example (1234), which adds meaning beyond the bare schema property name 'issue_nbr'. However, it does not provide additional detail such as format constraints or behavior when the number is invalid.

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

Purpose5/5

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

Description clearly states the tool's function: retrieving incident details using the issue number as identifier. The verb 'get' plus resource 'incident details' distinguishes it from sibling tools like get_incident_scope_by_issue_number or open_incident_by_id.

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

Usage Guidelines4/5

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

The description implies usage when the user has an issue number and wants full incident details, but it does not explicitly contrast with similar tools like get_incident_scope_by_issue_number or search_incidents. However, the context is reasonably clear, and mentioning the issue number as a unique identifier helps signal when this tool is appropriate.

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

get_incident_scope_by_issue_numberA

Get incident scope by issue number. The issue number is the unique identifier of the incident, for example 1234. The scope is the list of assets and monitors associated with the incident.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_numberYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral characteristics, but it only defines the output concept. It does not state that the operation is read-only, how errors are handled for invalid or missing issue numbers, or whether the returned list can be empty. The description thus provides minimal transparency beyond the basic purpose.

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 three short sentences: purpose, parameter clarification, and output definition. Every sentence adds value without redundancy, making it appropriately concise and easy to parse.

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

Completeness4/5

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

For a simple read-only tool with a single parameter and no output schema, the description covers the core function, parameter meaning, and output type (list of assets and monitors). It lacks details on error behavior or edge cases, but it is fairly complete for the context.

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 description explains that issue_number is the unique identifier of the incident and provides an example (1234), adding meaning beyond the schema's bare integer type. This is the only parameter, and the description compensates for the lack of schema descriptions, though it does not specify any value constraints.

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

Purpose5/5

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

The description uses the specific verb 'Get' with resource 'incident scope' and clarifies that scope means the list of assets and monitors. This makes the tool's function immediately understandable and distinguishes it from sibling tools like get_incident_by_issue_number that retrieve incident details rather than scope.

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

Usage Guidelines3/5

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

The description implies usage when the agent needs the assets and monitors tied to an incident using its unique issue number. However, it does not explicitly contrast this with alternatives such as get_incident_by_issue_number or mention when not to use this tool, so the guidance is only implicit.

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

get_monitor_code_by_descriptionA
    Returns a monitor configuration based on the input query
    The input is a description of the monitor you want to create.
    The description should be a natural language description of the monitor you want to create.
    The dataset_ids is a list of dataset ids that the monitor should be applied to. You must provide at least one dataset id. You can find the id of the dataset using search_asset. 
    The description is a string that describes the monitor you want to create. For example: "Create a monitor that checks if the number of rows in the table is greater than 1000".
    The result is a YAML string that contains the monitor configuration.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idsYes
descriptionYes

TDQS

A4/5.0
Behavior3/5

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

The description discloses the output format ('The result is a YAML string') and the required inputs, but it does not explicitly state whether the tool has side effects (e.g., whether it actually creates a monitor or only generates code). Without annotations, this leaves some ambiguity about the tool's safety profile and behavioral implications.

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

Conciseness3/5

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

The description is repetitive, redefining 'description' multiple times ('The input is a description...', 'The description should be...', 'The description is a string...'). While the content is useful, the redundancy adds unnecessary length and could be condensed without losing information.

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

Completeness4/5

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

The description covers the tool's purpose, required inputs, a usage example, and the output format (YAML string). It adequately addresses the key aspects for a simple two-parameter tool, though it does not discuss error cases or edge cases. This is sufficient given the tool's simplicity and lack of additional schema/annotation context.

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?

Despite the schema having no descriptions, the tool description adds significant meaning to both parameters: it explains dataset_ids as a list to apply the monitor to and instructs to use search_asset for discovery, and it defines description with an example ('Create a monitor that checks if the number of rows in the table is greater than 1000'). This compensates well for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's function: 'Returns a monitor configuration based on the input query' and elaborates that it converts a natural language description and dataset IDs into a YAML configuration. This distinguishes it from sibling tools like get_monitor_details_by_id (which retrieves existing monitor details) and search_asset (which finds datasets).

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

Usage Guidelines4/5

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

The description provides explicit guidance on inputs: it requires at least one dataset ID and directs users to 'find the id of the dataset using search_asset'. This gives clear context for when to use the tool and how to gather prerequisites, though it does not explicitly contrast with alternative tools.

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

get_monitor_details_by_idA
    Get monitor details by id. 
    The monitor_id is the monitor UUID. The id can be found when you search for a monitor.
    monitor_id is the unique identifier of the monitor, for example 3b8a1333-aef0-468a-893b-e87dfc095c82
    
ParametersJSON Schema
NameRequiredDescriptionDefault
monitor_idYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to disclose the return format, error behavior, or whether any special permissions are needed. While 'get' implies a read operation, the description does not add behavioral depth beyond that.

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

Conciseness3/5

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

The description is short but redundant: 'monitor_id is the monitor UUID' and 'monitor_id is the unique identifier' convey the same information twice. A more streamlined version would be more concise while retaining all key details.

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

Completeness4/5

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

For a simple one-parameter read tool with no output schema, the description adequately covers purpose and parameter semantics. It lacks details about return structure or failure cases, but these are less critical given the tool's simplicity.

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

Parameters5/5

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

The schema only specifies monitor_id as a string, but the description enriches it with the meaning (UUID), an example value, and guidance on how to find it. This fully compensates for the zero schema coverage for this single parameter.

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 states a clear verb+resource ('Get monitor details by id'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools, though the name itself is distinctive enough among the listed siblings.

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

Usage Guidelines4/5

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

It provides clear context: the monitor_id is a UUID and can be found by searching for a monitor. This implies when to use it (when you have the id) but does not explicitly mention alternatives or when not to use it, so it earns a 4.

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

open_incident_by_idB

Open an incident by id. The id is the unique identifier of the incident, for example 1234.

ParametersJSON Schema
NameRequiredDescriptionDefault
incident_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It fails to disclose any behavioral traits: 'open' implies a possible state change or side effect, but there is no mention of permissions, reversibility, or operational impact. This is a significant transparency gap.

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

Conciseness5/5

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

The description is extremely concise: two sentences, front-loaded with the core action, and no unnecessary words. It efficiently uses the available space.

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?

The tool is simple but lacks complete context. There is no output schema, so the description should at least mention what the tool returns or any behavioral consequences. It also fails to differentiate from get_incident_by_issue_number, leaving the agent without enough context to decide when to use this tool.

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 0%, so the description partially compensates by explaining that the id is the unique identifier and providing an example. However, it does not elaborate on where the id comes from or any format constraints beyond the example.

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

Purpose5/5

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

Specific verb 'open' with resource 'incident' and identifier 'id', clearly distinguishes from sibling tools like close_incident_by_id and search_incidents. The action is unambiguous.

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 on when to use this tool versus alternatives, no prerequisites, and no mention of context. The description simply states what it does without explaining when it should be invoked.

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

search_assetA
    Search assets, tables, dashboards, pipelines.
    asset_type can be one of the following: TABLE_AND_VIEW, PIPELINE, DASHBOARD, ML_MODEL
    health_status can be one of the following: URGENT_INCIDENTS, HIGH_RISK_INCIDENTS, NO_INCIDENTS, NOT_MONITORED, UNSUPPORTED
    owners is a list of owners emails associated with the asset
    tags is a list of tags associated with the asset
    text_search is a string to search in the asset name or description
    items_per_page is the number of items to return per page
    page is the page number to return. Pages start at 0.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
tagsYes
asset_typeYes
text_searchYes
owners_emailYes
health_statusYes
items_per_pageYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explains parameter values but does not describe how filters combine, the response format, or any side effects. It only hints at behavior via parameter semantics (e.g., text_search targets name/description, page starts at 0), leaving significant behavioral aspects undisclosed.

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 compact, front-loaded bullet list. It begins with the purpose and then lists each parameter concisely without repetition or unnecessary prose. Every line adds value.

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

Completeness3/5

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

The description fully covers parameters but lacks information about the response structure (no output schema), filter combination logic, or sorting. With 7 required parameters and no output schema, the agent is not fully informed about what the tool returns or how to interpret results.

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

Parameters5/5

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

The description adds rich meaning for all 7 parameters: enumerated values for asset_type and health_status, owners as emails, tags as a list, text_search scope, items_per_page meaning, and page base. The input schema has no descriptions, so this is the sole source of parameter semantics and is highly comprehensive.

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

Purpose5/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 the resource types (assets, tables, dashboards, pipelines). This distinguishes it from sibling tools like search_incidents and asset_by_urn, which target different resources or operations.

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

Usage Guidelines3/5

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

The description implies this tool is for searching assets and related entities, but it does not explicitly mention when to use alternative tools or provide exclusions. The enumerated asset types give implicit context, but there is no direct 'use this when...' guidance.

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

search_incidentsA
      Search incidents
      Sort is done by createdAt by default. By default sort is descending. But you can change it using sort=asc.
      You can filter by status, user and text search.
      Status can be OPEN, IN_PROGRESS, CLOSED.
      Text search is a string.
      Pages start at 0.
      
ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
sortNodesc
statusYes
text_searchYes
items_per_pageYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses sorting defaults, filterable fields, allowed statuses, and pagination start, which is useful. However, it mentions a 'user' filter that is not present in the input schema, and it does not disclose output format or whether status accepts an array, leaving gaps.

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 reasonably concise, using short sentences and bullet-like lines. The sort explanation is slightly redundant ('By default sort is descending. But you can change it'), but overall every sentence carries useful information without excessive verbosity.

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

Completeness3/5

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

The description covers sorting, filtering, statuses, and pagination but does not mention the return format or any side effects. The inconsistency around the 'user' filter and missing details on array semantics leave gaps for an agent trying to invoke the tool correctly.

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 coverage is 0%, so the description must add meaning. It explains the sort parameter (default 'desc', change to 'asc'), enumerates status values, and notes pages start at 0. Yet it omits the array nature of status, fails to explain items_per_page, and introduces a non-existent 'user' parameter, reducing its value.

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

Purpose5/5

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

The description clearly states 'Search incidents' with a specific verb and resource, and goes on to detail the searchable criteria (sort, filters, pagination). This distinguishes it from sibling tools like search_asset and the various get_incident_* tools that fetch specific assets or incidents.

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

Usage Guidelines4/5

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

The description conveys that this is the tool for searching incidents with filtering and sorting, providing clear context for when to use it. It does not explicitly name alternatives like get_incident_by_issue_number for single-record retrieval, but the verb and resource make the use case apparent.

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. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.6
    • First observedasset_by_urn
    • First observedclose_incident_by_id
    • First observedget_downstream_assets_of_asset
    • First observedget_incident_by_issue_number
    • First observedget_incident_scope_by_issue_number
    • First observedget_monitor_code_by_description
    • First observedget_monitor_details_by_id
    • First observedopen_incident_by_id
    • First observedsearch_asset
    • First observedsearch_incidents

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (asset lookup vs incident search vs monitor details). However, incident tools use different identifiers ('by_id' vs 'by_issue_number') for what appears to be the same entity, which could confuse an agent. Asset tools by URN are distinct but share similar input patterns.

Naming Consistency3/5

Naming conventions are mixed: 'asset_by_urn' does not follow the verb-first pattern used by most others, and pluralization is inconsistent ('search_asset' vs 'search_incidents'). Incident tools also inconsistently use 'by_id' versus 'by_issue_number'.

Tool Count5/5

10 tools is well-scoped for a data observability platform, covering assets, monitors, and incidents without being overwhelming. Each tool serves a distinct function, and the count fits comfortably within the ideal range.

Completeness3/5

Core workflows like asset search/detail, incident management, and monitor code generation are covered. However, there is no tool to search or list monitors (only get by ID), no monitor creation/update, and only downstream asset lineage (no upstream). These are notable gaps for a monitoring-focused tool.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with the Bigeye Data Observability platform to query data quality issues, analyze data lineage and dependencies, track AI agent data access patterns, and perform root cause analysis for data issues.
    -
  • F
    license
    B
    quality
    F
    maintenance
    Enables comprehensive Datadog monitoring capabilities including CI/CD pipeline management, service logs analysis, metrics querying, monitor and SLO management, service definitions retrieval, and team management through Claude and other MCP clients.
    13
    20
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLM agents to query Dynatrace SaaS for observability data (logs, metrics, traces, entities, problems, vulnerabilities) and manage configurations (dashboards, notebooks, SLOs, synthetic monitors, settings).
    100
    MIT

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/siffletdata/sifflet-mcp'

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