Skip to main content
Glama
trailofbits

Slither MCP Server

Official
by trailofbits

list_functions

List functions in Solidity projects filtered by contract, visibility, and modifiers. Returns signatures, visibility, modifiers, arguments, and return types for security analysis.

Instructions

Lists functions across the project or filtered by contract, visibility, and modifier usage. Use this when searching for functions with specific characteristics like external entry points, functions with modifiers, or private helpers. Returns function signatures, visibility, modifiers, arguments, and return types. Does not include function source code; use get_function_source for that. Supports pagination and sorting.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successYes
has_moreNoTrue if there are more results beyond this page
functionsYes
total_countYes
error_messageNo
Behavior4/5

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

With no annotations provided, the description fully carries the burden of behavioral disclosure. It tells what is returned (signatures, visibility, modifiers, arguments, return types), what is not included (source code), and mentions pagination and sorting capabilities. This is sufficient for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is concise at five sentences, each adding value. It is front-loaded with the core purpose and follows with usage guidance, output description, exclusions, and features. No extraneous 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?

Given the tool's complexity, presence of an output schema (so return values don't need explanation), and rich input schema with descriptions, the description adequately covers filtering, exclusion of source code, pagination, and sorting. It could mention that it is a read-only operation, but that is implicitly clear. Overall complete for a listing 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?

The description adds some parameter context by mentioning filters for contract, visibility, and modifier usage, which correspond to contract_key, visibility, and has_modifiers. However, it does not detail parameters like path, limit, offset, sort_by, sort_order, or exclude_paths. Since the input schema already has detailed descriptions for these, the description adds marginal value, earning a baseline score of 3.

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 'Lists functions' with specific filtering options (contract, visibility, modifier usage). It explicitly distinguishes itself from get_function_source by stating what it does not include, and the verb 'list' combined with resource 'functions' is specific and actionable.

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 gives explicit usage scenarios: 'Use this when searching for functions with specific characteristics like external entry points, functions with modifiers, or private helpers.' However, it does not mention when not to use it or list alternatives like search_functions, which could provide a more targeted search.

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

Install Server

Other Tools

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/trailofbits/slither-mcp'

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