ai.myriade/myriade
REMOTE · APP.MYRIADE.AI · SCANNED SEP 20
Explore and query your data warehouse through Myriade's AI data analyst agent.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability73
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3036 tokens (~159/item across 19 items; 19 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 Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- 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 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "myriade_query" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the ai.myriade/myriade MCP server?
ai.myriade/myriade is a hosted endpoint at https://app.myriade.ai/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · app.myriade.ai
claude mcp add --transport http ai-myriade-myriade 'https://app.myriade.ai/mcp/'
{
"mcpServers": {
"ai-myriade-myriade": {
"url": "https://app.myriade.ai/mcp/"
}
}
} {
"servers": {
"ai-myriade-myriade": {
"type": "http",
"url": "https://app.myriade.ai/mcp/"
}
}
} [mcp_servers.ai-myriade-myriade] url = "https://app.myriade.ai/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-myriade-myriade": {
"type": "remote",
"url": "https://app.myriade.ai/mcp/",
"enabled": true
}
}
} openclaw mcp add ai-myriade-myriade --url 'https://app.myriade.ai/mcp/' --transport streamable-http
mcp_servers:
ai-myriade-myriade:
url: "https://app.myriade.ai/mcp/" {
"McpServers": {
"ai-myriade-myriade": {
"Transport": "http",
"Url": "https://app.myriade.ai/mcp/"
}
}
} assistant mcp add ai-myriade-myriade -t streamable-http -u 'https://app.myriade.ai/mcp/'
{
"mcpServers": {
"ai-myriade-myriade": {
"type": "http",
"url": "https://app.myriade.ai/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 20 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 19 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 18 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 17 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 16 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 15 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 14 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 13 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day 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 20 Sept 2026 · Probed https://app.myriade.ai/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=myriade.ai | CN=WE1,O=Google Trust Services,C=US | 8 Sept 2026 | 7 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | b38e236f4007622b13e5fa6479bd1112 |
| SANs: myriade.ai, *.myriade.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of app.myriade.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| myriade.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer error="invalid_token", error_description="Authentication required", resource_metadata="https://app.myriade.ai/.well-known/oauth-protected-resource/mcp"
Bearer error="invalid_token", error_description="Authentication required", resource_metadata="https://app.myriade.ai/.well-known/oauth-protected-resource/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://static.cloudflareinsights.com https://*.posthog.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' wss: https:; worker-src 'self' blob:; |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
Protected resource metadata
| Document | https://app.myriade.ai/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://app.myriade.ai/mcp |
| Authorisation server | https://app.myriade.ai/ |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://app.myriade.ai/mcp/ | Verified | 200 | |
| http (plaintext) | http://app.myriade.ai/mcp/ | HTTPS enforced | 301 | https://app.myriade.ai/mcp/ |
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 →
myriade_ask ~284
Ask a natural language question about a database using Myriade's data analyst agent. The agent will explore the database schema, search the catalog, run SQL queries, and analyze the results to answer your question. Use this for complex analytical questions that require multiple steps; for simple schema lookups or direct SQL, prefer the other tools. The run executes in the background as a regular Myriade conversation (visible in the web UI). If it finishes quickly the answer is returned directly; otherwise the tool returns ``{"status": "running", "conversation_id": ...}`` — poll myriade_get_answer with that id to retrieve the result. Long analytical questions are expected to take several minutes. Note: the agent has access to catalog write operations (create/update assets, tags, terms) — it may modify catalog state to record findings. It can also read, create and edit reports (ask it to "write a report on ..." or "update report <id> with ..."). Use myriade_query directly for strictly read-only inspection. Requires AI_PROVIDER and the corresponding API key (e.g. AI_PROVIDER=anthropic + ANTHROPIC_API_KEY).
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| question | string | yes | Natural-language question about the data |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_get_answer ~178
Retrieve the result of a myriade_ask run. Returns ``{"status": "completed", "answer": ...}`` once the analyst agent has answered, or ``{"status": "running"}`` while it is still working — keep polling in that case. ``{"status": "failed"}`` / ``{"status": "quota_exceeded"}`` carry the run's error. ``{"status": "no_answer"}`` means the run is gone without a recorded answer (agent stopped silently, or the server restarted): start a new myriade_ask run.
| Name | Type | Req | Description |
|---|---|---|---|
| conversation_id | string | yes | Conversation UUID returned by myriade_ask |
| wait_seconds | integer | – | How long to wait for the run to finish before reporting its status (long-poll) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_get_check ~87
Get a monitoring check (name, SQL, severity, cadence, status) and its most recent run results, newest first. On governed databases the SQL and evidence rows are redacted unless you manage the database or authored the proposal.
| Name | Type | Req | Description |
|---|---|---|---|
| check_id | string | yes | UUID of the monitoring check |
| limit | integer | – | Run results to return (1-100) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_get_database_info ~64
Get detailed information about a specific database connection. Returns information about the database including its name, engine type, description, write mode, and any AI memory notes.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database (from myriade_list_databases) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_get_query_results ~153
Re-execute a saved Myriade query and return fresh results. The query's SQL always re-runs under the caller's governance policies (table permissions, column masking) — results are never served from Myriade's cached snapshot. Prefer this over myriade_query for recurring metrics (dashboards, cockpits): the SQL stays governed in Myriade instead of travelling through prompts. Write statements are blocked. Returns up to 50 rows with column metadata, same shape as myriade_query.
| Name | Type | Req | Description |
|---|---|---|---|
| query_id | string | yes | UUID of a saved Myriade query (from a Myriade query link, e.g. in myriade_ask responses) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_get_table_schema ~137
Get the column-level schema for a specific table. Returns column names, data types, and descriptions for the table, plus the SQL `dialect` to use with myriade_query on this database. When the name is ambiguous across schemas, the candidates are returned under `matches` instead — pass `schema_name` to pick one. Raises if the user has no access to the table under governance.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| schema_name | – | – | Optional schema name to disambiguate same-named tables |
| table_name | string | yes | Name of the table to inspect |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_list_databases ~80
List databases configured in Myriade (paginated, sorted by name). Returns paginated database connections with their IDs, names, engines, and descriptions. Use the database ID with other tools.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum results to return (1-200) |
| offset | integer | – | Number of results to skip for pagination |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_list_reports ~128
List or search reports (documents) written in Myriade. Without ``query`` returns the most recently updated reports first; with ``query`` returns the best matches first. Only reports the caller may see are returned. Read one with myriade_read_report.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | – | – | UUID of the database whose reports to list. Omit for organisation-level reports (not bound to a database). |
| limit | integer | – | Maximum results to return (1-50) |
| query | – | – | Optional search terms (title, description, content); results are ranked by relevance |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_list_tables ~112
List tables in a database (paginated, sorted by database/schema/name). Returns a flat, paginated list of tables. Each item has database_name, schema, and name fields. The response's `dialect` is the SQL dialect to use with myriade_query on this database.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| limit | integer | – | Maximum tables to return (1-500) |
| offset | integer | – | Number of tables to skip for pagination |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_monitoring_overview ~130
Snapshot of a database's monitoring board: check count, standing alerts (open / acknowledged / known) with their headlines, recent notifications and triage notes, followed by the open alerts as JSON — each with its investigation and evidence while they fit, then as listing lines, with ``shown`` / ``total`` / ``detailed`` saying which. Alert ids feed myriade_triage_alert; check ids feed myriade_get_check. Investigation details are redacted unless you manage the database.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_propose_check ~264
Propose a monitoring check for the user to review in Myriade. This creates a PROPOSAL, never an active check: nothing runs until a database owner or org admin accepts it in the app. The SQL is test-run once under your governance context to validate it. Contract for ``check_sql``: it MUST return rows ONLY when something is wrong (zero rows = healthy) and use relative time (``now() - interval``), never absolute dates. Minimum cadence is 5 minutes. Names are unique per database — read myriade_monitoring_overview before proposing a near-duplicate.
| Name | Type | Req | Description |
|---|---|---|---|
| check_sql | string | yes | SQL returning zero rows when healthy, rows when wrong |
| database_id | string | yes | UUID of the database |
| description | string | – | One sentence, prospective tense: "Trips when <condition> (baseline ~X)" |
| group_name | – | – | Cluster to file the check under (reuse an existing group's exact name), or omit to leave it unfiled |
| interval_minutes | integer | – | Cadence in minutes (minimum 5) |
| name | string | yes | Short human-readable name (unique per database) |
| severity | string | – | Severity raised when the check trips |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_query ~183
Execute a read-only SQL query against a database. Write the SQL in the dialect of the target database's engine — see the `dialect` field returned by myriade_list_tables and myriade_get_table_schema, or the engine in myriade_list_databases. Write operations (INSERT, UPDATE, DELETE, DROP, etc.) are blocked. Returns up to 50 rows of results with column metadata. Successful queries are saved in Myriade; the response's `query_id` can be replayed later with myriade_get_query_results without resending SQL.
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| sql | string | yes | Read-only SQL query, written for the target database's dialect (writes are blocked) |
| title | – | – | Optional name for the saved query, shown in Myriade |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_read_asset ~109
Get detailed information about a catalog object (table, column, schema, or glossary term — assets and terms share one id space). Returns the asset's description, tags, status, columns (for tables), sample data, parent hierarchy, and activity feed; for a glossary term, its definition, synonyms, related terms, and activity feed.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | UUID of the catalog object (asset or glossary term) |
| database_id | string | yes | UUID of the database |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_read_report ~89
Read a report's full markdown content. Applies the same visibility rule as the web app; a report the caller may not see returns a "not found" error. To create or edit a report, use myriade_ask — the analyst agent knows how reports are structured.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | string | yes | UUID of the report (from myriade_list_reports) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_request_catalog_change ~164
Propose a catalog change for the data team to review (no edit rights needed). Creates a reviewable suggestion routed to the asset's reviewers. Does NOT change the published catalog until approved. Use this instead of ``myriade_update_asset`` when you lack edit rights or are not confident enough to write directly.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | UUID of the asset to propose a change for |
| database_id | string | yes | UUID of the database |
| field | string | yes | Field to change: "description" or "tags" |
| proposed_value | string | yes | Proposed description text, or JSON-encoded list of tag names |
| rationale | string | yes | Why this change is proposed — shown to reviewers and in the activity feed |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_sample_data ~108
Get sample rows from a table to understand the data. Returns a random sample of up to ``limit`` rows (max 20).
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | string | yes | UUID of the database |
| database_name | – | – | Optional warehouse-side database name (e.g. for Snowflake) |
| limit | integer | – | Rows to sample (1-20) |
| schema_name | string | yes | Schema containing the table |
| table_name | string | yes | Name of the table to sample |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_search_catalog ~114
Search the data catalog for tables, columns, or terms by name/description. Uses fuzzy matching and full-text search. Keep queries short (1-2 words) for best results.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_type | – | – | Filter: "TABLE", "COLUMN", or "TERM" |
| database_id | string | yes | UUID of the database |
| limit | integer | – | Maximum results to return (1-50) |
| text | string | yes | Search query — keep short (1-2 words) for best results |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_triage_alert ~250
Triage an alert (requires manage access: database owner or org admin). - ``resolve``: the underlying problem is handled or gone. - ``acknowledge``: keep it standing with a ``statement`` of what is happening — only for a situation that may worsen. - ``dismiss``: false positive / expected; refused while the check still trips (it would just respawn). - ``snooze``: silence for ``hours`` with a ``statement``; reopens by itself if the check still trips afterwards. - ``reopen``: send a parked alert back to "needs action" with a ``statement`` of what is no longer covered.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Transition to apply to the alert |
| alert_id | string | yes | UUID of the alert |
| hours | – | – | Snooze window in hours (1-168). Required for snooze. |
| note | – | – | Optional note appended to the alert details (resolve, dismiss) |
| statement | – | – | One SHORT present-tense plain-text sentence (~120 chars, no Markdown) shown as the alert headline. Required for acknowledge, snooze and reopen. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
myriade_update_asset ~210
Update a catalog asset's documentation (requires edit rights). - ``description`` replaces the existing description (auto-sets status to "draft" if status is null). - ``tag_ids`` replaces all tags (accepts names or UUIDs; auto-creates missing tags). - ``status`` is "draft" (needs review) or "published". Only use "published" with high confidence. Use ``myriade_request_catalog_change`` instead when you lack edit rights or are not confident enough to write directly.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | UUID of the asset to update |
| database_id | string | yes | UUID of the database |
| description | – | – | Replaces existing description; auto-sets status='draft' if status is null |
| status | – | – | "draft" (needs review) or "published" (production-ready) |
| tag_ids | – | – | Tag names or UUIDs (replaces all tags). Auto-creates missing tags. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the ai.myriade/myriade MCP server?
ai.myriade/myriade is an MCP server listed in the public MCP registry as ai.myriade/myriade. Explore and query your data warehouse through Myriade's AI data analyst agent. This page covers its hosted endpoint (https://app.myriade.ai/mcp/).
Is the ai.myriade/myriade MCP server safe to use?
ai.myriade/myriade scores 90 out of 100 on VerifyMCP. 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 ai.myriade/myriade MCP server expose?
ai.myriade/myriade exposes 19 tools: myriade_list_databases, myriade_get_database_info, myriade_list_tables, myriade_get_table_schema, myriade_query, and 14 more. Their descriptions and schemas cost roughly 2,844 tokens of context every time the server is loaded.
Does the ai.myriade/myriade MCP server require authentication?
Yes. ai.myriade/myriade asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the ai.myriade/myriade MCP server still maintained?
ai.myriade/myriade is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.