Skip to main content
Glama

Grisoco AI security audits

Server Details

Smart-contract security audits for EVM chains and DAML: quote, run and fetch reports.

Ownership verified
Status
Healthy
Uptime
50.1% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation5/5

Each tool maps to a distinct step in the audit lifecycle: quote (price), submit (charge and start), get_audit (status), get_audit_report (output), list_audits (history), get_balance (funds). The descriptions explicitly sequence get_audit before get_audit_report, removing the only potential overlap.

Naming Consistency5/5

All six names follow a consistent verb_noun snake_case pattern (get_, list_, quote_, submit_), with get_audit/get_audit_report being a natural resource/sub-resource pair rather than an inconsistency.

Tool Count5/5

Six tools is tightly scoped to the domain, and each one covers a step that an agent genuinely needs (price, submit, poll, fetch, list, balance), with no redundancy or filler.

Completeness4/5

The full lifecycle is covered end-to-end, including a safe dry-run pricing step and balance check. The only visible gap is the absence of a cancel/abort operation for a running or queued audit, plus top-up being delegated to an external dashboard.

Available Tools

6 tools
get_auditGet audit statusA
Read-only
Inspect

Status of an audit: queued, running, succeeded, failed (refunded) or expired.

NameRequiredDescriptionDefault
audit_idYesThe audit id returned by submit_audit or list_audits.

Output Schema

NameRequiredDescription
idYesAudit id.
errorYesWhy the audit failed, if it did.
stageYesProgress detail while running.
statusYesfailed audits are refunded; expired reports were deleted after the retention window.
productYesdeep_review or tools.
languageYessolidity or daml.
refundedYesTrue when the audit failed and the price was returned.
total_locYesLines of code audited.
created_atYesISO 8601 timestamp.
started_atYesISO 8601 timestamp.
finished_atYesISO 8601 timestamp.
price_centsYesPrice charged, in US cents.
project_nameYesProject name shown on the report.
audit_targetsYesThe files audited.
contract_countYesNumber of files audited and billed.
discount_percentYesAccount discount applied, 0 if none.
report_availableYesTrue when get_audit_report can return the report.
report_expires_atYesWhen the report is deleted (ISO 8601).

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered; the description goes beyond that by enumerating the terminal and intermediate states, including the notable 'failed (refunded)' outcome, which tells the agent what to expect and what a failure implies. It stops short of saying whether statuses transition and how often to poll.

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?

One short sentence with the key information (the state list) placed up front and nothing wasted. It reads as a fragment rather than a complete statement, and the parenthetical '(refunded)' is slightly ambiguous, but the sizing is right.

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?

With a 100% covered single-parameter schema, an output schema, and readOnly annotations, the description covers the essentials: what is returned and the value space. The main omission is whether the status is volatile and should be re-polled, which an agent calling a job-status tool would benefit from knowing.

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 100% for the single audit_id parameter, and the schema itself explains that the id comes from submit_audit or list_audits. The description adds no parameter-level meaning, so baseline 3 applies.

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?

Identifies the resource (an audit) and the exact information returned (its status), and enumerates the possible values, which tells an agent precisely what this tool yields. It doesn't explicitly distinguish itself from the sibling get_audit_report, so the agent must infer that one returns a status and the other a full report.

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?

There is no statement of when to call this versus get_audit_report, quote_audit, or submit_audit, and no guidance on polling/re-checking a status that may change. The only hint of usage lives in the schema's audit_id description referencing submit_audit/list_audits, which is structured data rather than description text.

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

get_audit_reportGet audit reportA
Read-only
Inspect

The finished report as Markdown (or the full JSON). Only once get_audit says succeeded.

NameRequiredDescriptionDefault
formatNomarkdown for a readable report, json for the full machine-readable result.markdown
audit_idYesThe audit id returned by submit_audit or list_audits.

Output Schema

NameRequiredDescription
formatYesFormat of report.
reportYesThe full report: Markdown text, or a JSON document as text.
audit_idYesThe audit the report belongs to.

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful context that the report is finished and should only be fetched after get_audit succeeds. It does not describe failure behavior if called too early, but the annotation lowers the disclosure burden.

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 short sentences with no wasted language. The output format and the key prerequisite are front-loaded, making it easy to scan.

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?

With an output schema, full parameter coverage, and a readOnlyHint annotation, the description provides enough context to call the tool correctly. It could be slightly more explicit that it retrieves the report for a specific audit_id, but the essential gating condition and output format are covered.

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 defines audit_id and the format enum. The description mentions Markdown versus JSON but adds no additional parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states the resource and output formats clearly: the finished audit report as Markdown or full JSON. It also distinguishes itself from get_audit by saying it should be used only after get_audit reports success. It lacks an explicit verb such as 'retrieve,' but the purpose is still easy to infer.

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 gives a clear prerequisite: use only once get_audit says succeeded. That tells the agent when this tool is appropriate relative to the status-checking sibling. It does not explicitly name exclusions or other alternatives, but the key gating condition is present.

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

get_balanceGet balanceA
Read-only
Inspect

The account's prepaid balance in US cents. Top-ups are made in the Grisoco dashboard.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
currencyYesAlways USD.
balance_centsYesPrepaid balance in US cents.

TDQS

A3.9/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds useful context beyond that — the unit of measure (US cents) and the fact that top-ups are not performed here — but says nothing about behavior for non-prepaid accounts, error cases, or freshness of the value.

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 with zero filler, and the core fact (what the value is, in what unit) is front-loaded.

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?

A zero-parameter read tool with an output schema and readOnly annotation needs little prose, and the description covers the essentials (unit, source of top-ups). A brief note on behavior when no prepaid balance exists would make it fully complete.

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 takes zero parameters, so the baseline is 4. Nothing about argument semantics needs explaining, and the description correctly spends no space on inputs.

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?

States a concrete resource and value: the account's prepaid balance, with the unit (US cents) specified. It is unambiguous and clearly distinct from the sibling audit tools, though it describes the return value rather than naming the retrieval action explicitly.

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 note that top-ups happen in the Grisoco dashboard implicitly scopes this tool to reading the balance only and signals the excluded operation. No explicit when-to-use clause, but there are no sibling alternatives that could be confused with it.

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

list_auditsList auditsC
Read-only
Inspect

The account's most recent audits, newest first.

NameRequiredDescriptionDefault
limitNoHow many audits to return, newest first (1-100).

Output Schema

NameRequiredDescription
auditsYesMost recent audits, newest first.

TDQS

C2.9/5.0
Behavior2/5

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

readOnlyHint=true already establishes the safety profile, and the schema's limit description already states 'newest first,' so the ordering claim largely repeats structured data. Nothing is said about pagination, retention window, or what an audit entry contains, leaving little added behavioral context.

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?

A single front-loaded sentence with zero filler. It is efficient, though its brevity edges toward under-specification for a tool with four adjacent siblings.

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 output schema means return values needn't be explained, but an agent choosing among get_audit, get_audit_report, quote_audit, and submit_audit gets no help from this description. For a listing tool in a crowded audit family, more disambiguation is needed.

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?

With 100% schema description coverage on the single limit parameter (default 20, max 100, ordering), the schema does the documentation work. The description adds no further meaning such as what happens at the default or how to page beyond the cap.

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?

States a specific resource (the account's audits) with a clear scope and ordering (most recent, newest first), which tells an agent this is a list operation rather than a fetch-one. It stops short of naming how it differs from siblings like get_audit or get_audit_report.

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?

There is no explicit when-to-use guidance and no mention of alternatives, even though four audit-related siblings exist (get_audit, get_audit_report, quote_audit, submit_audit). The agent must infer that 'list recent' is the intended case.

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

quote_auditQuote an auditA
Read-only
Inspect

Price an audit without charging anything. Returns price_cents and whether the balance covers it.

NameRequiredDescriptionDefault
filesYesSource files. path is relative (e.g. src/Vault.sol); imported files must be included too.
productYesdeep_review: AI security review on top of the analysis tools (Solidity or DAML). tools: static analysis tools only (Solidity), cheaper and faster.
languageNoSource language: solidity for EVM contracts, daml for Canton/DAML packages.solidity
project_nameYesProject or company name shown on the report.
audit_targetsNoOptional: which files to audit and bill for. Default: every file sent. Imports are free.

Output Schema

NameRequiredDescription
productYesdeep_review or tools.
affordableYesWhether the balance covers price_cents.
price_centsYesWhat submit_audit would charge; pass it as max_price_cents.
audit_targetsYesThe files audited and billed.
balance_centsYesCurrent prepaid balance in US cents.
contract_countYesNumber of files audited and billed.
discount_percentYesAccount discount applied, 0 if none.
list_price_centsYesPrice before any account discount.

TDQS

A3.9/5.0
Behavior4/5

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

readOnlyHint=true is consistent with the description, and the description reinforces it with concrete, valuable detail: no charge is incurred and it reports price_cents plus whether the balance covers it. That is real context beyond the annotation, though it omits details such as rate limits or whether quoting validates the source files.

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 with zero waste; the cost-free behavior is front-loaded and the return fields are summarized in a single clause.

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

Completeness5/5

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

With readOnlyHint supplied, a full output schema, and 100% parameter coverage, the only burden on the description is the non-obvious cost-free behavior, which it states clearly. An agent can call this correctly from what is given.

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

Parameters3/5

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

Schema description coverage is 100%, with enums and defaults documented for product, language, encoding, audit_targets and files. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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?

States a specific verb+resource ('price an audit') and adds the key distinguishing trait that nothing is charged, which separates it from the sibling submit_audit. It stops short of naming that sibling explicitly, leaving the reader to infer the pairing.

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?

'Without charging anything' implies a pre-flight/dry-run role before submit_audit, but the description never says when to call this instead of submit_audit or get_balance, nor that it must precede submission. The when-to-use signal is present but only implied.

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

submit_auditSubmit an auditAInspect

Start an audit. SPENDS the quoted price from the prepaid balance, refused (nothing charged) if the price is above max_price_cents. Returns an audit id at once; the audit runs in the background (minutes). Poll get_audit about every 30 seconds.

NameRequiredDescriptionDefault
filesYesSource files. path is relative (e.g. src/Vault.sol); imported files must be included too.
productYesdeep_review: AI security review on top of the analysis tools (Solidity or DAML). tools: static analysis tools only (Solidity), cheaper and faster.
languageNoSource language: solidity for EVM contracts, daml for Canton/DAML packages.solidity
project_nameYesProject or company name shown on the report.
audit_targetsNoOptional: which files to audit and bill for. Default: every file sent. Imports are free.
max_price_centsYesThe most you agree to pay, in US cents. Use the price from quote_audit.

Output Schema

NameRequiredDescription
idYesAudit id.
errorYesWhy the audit failed, if it did.
stageYesProgress detail while running.
statusYesfailed audits are refunded; expired reports were deleted after the retention window.
productYesdeep_review or tools.
languageYessolidity or daml.
refundedYesTrue when the audit failed and the price was returned.
total_locYesLines of code audited.
created_atYesISO 8601 timestamp.
started_atYesISO 8601 timestamp.
finished_atYesISO 8601 timestamp.
price_centsYesPrice charged, in US cents.
project_nameYesProject name shown on the report.
audit_targetsYesThe files audited.
contract_countYesNumber of files audited and billed.
discount_percentYesAccount discount applied, 0 if none.
report_availableYesTrue when get_audit_report can return the report.
report_expires_atYesWhen the report is deleted (ISO 8601).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false / idempotentHint=false; the description adds the critical context of what actually happens: a prepaid-balance spend, atomic refusal with nothing charged when the price exceeds max_price_cents, an immediate id return, and a background job taking minutes. This is materially more than the annotations convey.

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?

Three short sentences, front-loaded with the action and the spend implication, then async behavior and polling cadence. No filler; every sentence carries operational information.

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

Completeness5/5

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

For a non-idempotent, cost-incurring, asynchronous submission tool, the description covers cost, atomicity of failure, return shape at a high level, duration, and follow-up polling. With an output schema present, return-value details are appropriately left out.

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 100%, so per-parameter meaning is already documented, including the enum options and file semantics. The description adds the guardrail semantics of max_price_cents (refusal behavior) but leaves other parameters, such as audit_targets and language, entirely to the schema. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Start an audit') and immediately distinguishes this submission tool from its siblings by naming the price source (quote_audit) and the polling target (get_audit). An agent can position it in the workflow without opening any schema.

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?

Establishes the workflow context – quoted price from quote_audit and polling get_audit every ~30 seconds – which implies the correct call order. It stops short of an explicit 'call quote_audit first' instruction or any when-not-to-use condition, so it is clear but not fully prescriptive.

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

Tool Schema Changelog

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

  1. 6 tool updates
    • First observedget_audit
    • First observedget_audit_report
    • First observedget_balance
    • First observedlist_audits
    • First observedquote_audit
    • First observedsubmit_audit

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables static auditing of EVM Solidity smart contracts to detect critical vulnerabilities such as reentrancy state changes, unhandled external calls, unchecked delegatecall, and tx.origin authentication flaws, producing risk audit reports.
    7
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables static security audit of Solidity smart contracts by analyzing source code or deployed bytecode for vulnerabilities, providing risk scores and detailed findings.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables users to perform static security audits on EVM Solidity contract code for critical flaws such as reentrancy state changes, unhandled external calls, unchecked delegatecall, and tx.origin authentication vulnerabilities, returning risk audit reports.
    7
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources