Skip to main content
Glama

IDA MCP Server

NOTE

The idalib mode is under development, and it will not require installing the IDA plugin or running IDA (idalib is available from IDA Pro 9.0+).

Overview

A Model Context Protocol server for IDA interaction and automation. This server provides tools to read IDA database via Large Language Models.

Please note that mcp-server-ida is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.

Related MCP server: Binary Ninja MCP Server

Installation

When using uv no specific installation is needed. We will use uvx to directly run mcp-server-ida.

Using PIP

Alternatively you can install mcp-server-ida via pip:

pip install mcp-server-ida

After installation, you can run it as a script using:

python -m mcp_server_ida

IDA-Side

Copy repository/plugin/ida_mcp_server_plugin.py and repository/plugin/ida_mcp_server_plugin directory into IDAs plugin directory

Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins

Linux/macOS: $HOME/.idapro/plugins eg: ~/.idapro/plugins

igors-tip-of-the-week-103-sharing-plugins-between-ida-installs

Configuration

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

"mcpServers": {
  "ida": {
    "command": "uvx",
    "args": [
        "mcp-server-ida"
    ]
  }
}
"mcpServers": {
  "ida": {
    "command": "python",
    "args": [
        "-m", 
        "mcp_server_ida"
    ]
  }
}

Debugging

You can use the MCP inspector to debug the server. For uvx installations:

npx @modelcontextprotocol/inspector uvx mcp-server-ida

Or if you've installed the package in a specific directory or are developing on it:

cd path/to/mcp-server-ida/src
npx @modelcontextprotocol/inspector uv run mcp-server-ida

Running tail -n 20 -f ~/Library/Logs/Claude/mcp*.log will show the logs from the server and may help you debug any issues.

Development

If you are doing local development, there are two ways to test your changes:

  1. Run the MCP inspector to test your changes. See Debugging for run instructions.

  2. Test using the Claude desktop app. Add the following to your claude_desktop_config.json:

UVX

{
"mcpServers": {
  "ida": {
    "command": "uv",
    "args": [ 
      "--directory",
      "/<path to mcp-server-ida>",
      "run",
      "mcp-server-ida"
    ]
  }
}

Alternatives

ida-pro-mcp

ida-mcp-server-plugin

mcp-server-idapro

pcm

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

Available Tools

19 tools
ida_add_assembly_commentC

Add a comment at a specific address in the assembly view of the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
commentYes
is_repeatableNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a comment, implying a mutation, but doesn't cover critical aspects like whether this action is reversible, if it requires specific user permissions, potential side effects (e.g., overwriting existing comments), or error conditions. This leaves significant gaps in understanding the tool's behavior beyond the basic 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?

The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded with the key action and target, making it easy to understand at a glance, which is ideal for conciseness in tool definitions.

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?

Given the complexity of a mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It lacks details on parameter usage, behavioral traits, error handling, and output expectations, making it incomplete for safe and effective agent invocation in this context.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'address' and 'comment' but doesn't explain their formats, constraints, or the meaning of 'is_repeatable'. It adds minimal semantic value beyond naming the parameters, failing to compensate for the lack of schema documentation, especially for the boolean 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 clearly states the action ('Add a comment') and target ('at a specific address in the assembly view of the IDA database'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'ida_add_function_comment' or 'ida_add_pseudocode_comment' beyond mentioning 'assembly view', leaving some ambiguity about when to choose this exact tool over similar ones.

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?

The description provides no guidance on when to use this tool versus alternatives, such as the sibling tools for adding comments in different contexts (e.g., function or pseudocode views). It also lacks information on prerequisites, like whether an IDA database must be open or if specific permissions are needed, leaving usage context implied but not stated.

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

ida_add_function_commentC

Add a comment to a function in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes
commentYes
is_repeatableNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a comment, implying a mutation, but doesn't cover critical aspects like whether it overwrites existing comments, requires specific permissions, has side effects, or returns any confirmation. This leaves significant gaps 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 a single, direct sentence with no wasted words, front-loading the core action and target. It efficiently conveys the essential purpose without unnecessary elaboration, making it easy to parse.

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?

Given a mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It lacks details on behavior, parameter meanings, return values, and usage context, failing to provide the necessary information for safe and effective tool invocation.

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 must compensate, but it only mentions 'function' and 'comment' implicitly without explaining parameters. It doesn't clarify the meaning of 'function_name', 'comment', or 'is_repeatable', leaving them undocumented. The baseline is 3 due to the coverage gap, but the description adds minimal value beyond the schema.

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 clearly states the action ('Add a comment') and target ('to a function in the IDA database'), making the purpose immediately understandable. It distinguishes from siblings like ida_add_assembly_comment and ida_add_pseudocode_comment by specifying 'function' rather than other comment types, though it doesn't explicitly contrast them.

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 is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an open IDA database), exclusions, or comparisons to sibling tools like ida_add_assembly_comment, leaving the agent to infer usage context.

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

ida_add_pseudocode_commentC

Add a comment to a specific address in the function's decompiled pseudocode

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes
addressYes
commentYes
is_repeatableNo

TDQS

C2.8/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 states the tool adds a comment, implying a mutation, but doesn't disclose behavioral traits like whether it overwrites existing comments, requires specific permissions, has side effects on the IDA database, or provides error handling. This leaves significant gaps for a mutation tool with zero annotation coverage.

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 single, clear sentence with no wasted words. It's front-loaded with the core action and target, making it easy to parse quickly, which is ideal for conciseness.

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?

Given the tool's complexity (a mutation with 4 parameters), lack of annotations, no output schema, and 0% schema coverage, the description is incomplete. It doesn't cover parameter meanings, behavioral context, or usage distinctions from siblings, leaving the agent under-informed for proper tool selection and invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter details. It mentions 'address' and 'comment' generically but doesn't explain their formats (e.g., hex address, comment content rules) or the purpose of 'function_name' and 'is_repeatable'. With 4 parameters undocumented in both schema and description, this is inadequate.

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 clearly states the action ('Add a comment') and target ('to a specific address in the function's decompiled pseudocode'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'ida_add_assembly_comment' or 'ida_add_function_comment', which likely add comments to different contexts (assembly vs. function-level).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'ida_add_assembly_comment' for assembly code or 'ida_add_function_comment' for function-level comments, nor does it specify prerequisites such as requiring an open IDA database or decompiled function availability.

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

ida_execute_scriptC

Execute a Python script in IDA Pro and return its output. The script runs in IDA's context with access to all IDA API modules.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the script runs in IDA's context with API access, but lacks details on permissions, error handling, execution limits, or output format. For a tool that executes scripts (potentially with side effects), this is insufficient.

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 concise and front-loaded, using two sentences that directly state the tool's purpose and context. There's no wasted text, though it could benefit from more detail given the lack of annotations and schema coverage.

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?

Given the complexity of script execution, no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't cover parameter details, behavioral traits, or return values, making it inadequate for safe and effective use by an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'Python script' but doesn't explain the 'script' parameter's format, constraints, or examples. No additional meaning is provided beyond the basic schema, failing to address the coverage gap.

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 clearly states the action ('Execute a Python script') and resource ('in IDA Pro'), with the specific context of running within IDA's environment. However, it doesn't explicitly differentiate from its sibling 'ida_execute_script_from_file', which handles script execution from files rather than direct script content.

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 is provided on when to use this tool versus alternatives. The description mentions running scripts in IDA's context but doesn't specify scenarios or compare it to 'ida_execute_script_from_file' or other tools for script-related tasks, leaving usage decisions unclear.

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

ida_execute_script_from_fileB

Execute a Python script from a file path in IDA Pro and return its output. The file should be accessible from IDA's process.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

B3.1/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 mentions executing a script and returning output, but lacks details on permissions needed, error handling, side effects (e.g., if it modifies IDA's state), or execution constraints (e.g., timeouts). This is inadequate for a tool that likely involves code execution in an IDE.

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 two sentences, front-loaded with the core action and resource. It's efficient with minimal waste, though it could be slightly more structured (e.g., separating constraints).

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?

Given no annotations, no output schema, and a single parameter with low schema coverage, the description is incomplete. It doesn't explain return values (e.g., output format, errors), behavioral traits, or usage nuances, making it insufficient for safe and effective tool invocation.

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 meaning by specifying 'file_path' as a path to a Python script accessible from IDA's process, which clarifies beyond the schema's generic 'File Path' title. With 0% schema description coverage and 1 parameter, this compensates partially, but doesn't detail format (e.g., absolute vs. relative paths) or constraints.

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 clearly states the action ('Execute a Python script from a file path') and resource ('in IDA Pro'), with a specific verb that distinguishes it from sibling tools like 'ida_execute_script' (which likely executes inline code). However, it doesn't explicitly differentiate from that sibling beyond implying file-based execution.

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 specifying 'The file should be accessible from IDA's process', which provides some context for when to use it (e.g., when you have a script file). It doesn't explicitly state when not to use it or name alternatives like 'ida_execute_script', leaving guidance incomplete.

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

ida_get_current_function_assemblyB

Get assembly code for the function at the current cursor position

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks critical details: it doesn't specify if this is a read-only operation, what happens if the cursor isn't in a function, the format of the returned assembly, or any error conditions. This leaves significant gaps in understanding 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 a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded with the core action and target, making it easy to parse quickly.

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?

Given the complexity of assembly code retrieval and the lack of annotations and output schema, the description is insufficient. It doesn't explain what 'assembly code' entails (e.g., raw bytes, disassembly, formatting), error handling, or dependencies on cursor state, leaving the agent with incomplete context for reliable use.

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 has zero parameters, and the input schema has 100% coverage (though empty). The description doesn't need to explain parameters, so it meets the baseline expectation. No additional parameter information is required or provided.

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 clearly states the action ('Get assembly code') and target ('for the function at the current cursor position'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish itself from sibling tools like 'ida_get_function_assembly_by_address' or 'ida_get_function_assembly_by_name', which offer similar functionality through different selection mechanisms.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requiring a cursor to be positioned within a function), nor does it compare with siblings that fetch assembly by address or name, leaving the agent to infer usage context from tool names alone.

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

ida_get_current_function_decompiledB

Get decompiled pseudocode for the function at the current cursor position

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/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 of behavioral disclosure. It states what the tool does but does not reveal any behavioral traits such as whether it requires specific permissions, how it handles errors (e.g., if no function is at the cursor), or what the output format looks like (e.g., text, structured data). This leaves significant gaps 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 a single, clear sentence that directly states the tool's purpose without any redundant words or fluff. It is front-loaded with the key action and target, making it highly efficient and easy to understand at a glance.

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 the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate for basic understanding but incomplete. It lacks details on behavioral aspects like error handling or output format, which are important for an agent to use the tool correctly in context, especially without annotations to fill in those gaps.

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 has 0 parameters, and the input schema has 100% description coverage (though empty). The description does not need to add parameter semantics, as there are none to explain. It appropriately focuses on the tool's purpose without unnecessary details, meeting the baseline for zero parameters.

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 clearly states the action ('Get decompiled pseudocode') and the target ('for the function at the current cursor position'), which is specific and unambiguous. However, it does not explicitly differentiate from its sibling tools like 'ida_get_function_decompiled_by_address' or 'ida_get_function_decompiled_by_name', which offer similar functionality but with different input methods.

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 referencing 'current cursor position,' suggesting it should be used when the cursor is placed on a function in IDA. However, it lacks explicit guidance on when to choose this tool over alternatives like the sibling tools that fetch decompiled code by address or name, and does not mention any prerequisites or exclusions.

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

ida_get_function_assembly_by_addressC

Get assembly code for a function by address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on permissions required, error handling, output format, or any side effects. This is inadequate for a tool that likely interacts with a disassembler like IDA Pro, where context such as analysis state or session requirements would be helpful.

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 single, clear sentence with no wasted words, making it easy to parse. It front-loads the core action and target efficiently, which is ideal for quick understanding.

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?

Given the complexity of interacting with a disassembler, no annotations, no output schema, and low schema coverage, the description is insufficient. It doesn't explain what 'assembly code' entails (e.g., raw bytes, formatted text), potential errors, or how it integrates with sibling tools, leaving significant gaps for an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented parameter. It mentions 'by address' which hints at the 'address' parameter, but doesn't specify the expected format (e.g., hex string, decimal), valid ranges, or examples. This adds minimal value beyond the schema's basic structure.

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 clearly states the action ('Get assembly code') and target ('for a function by address'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'ida_get_function_assembly_by_name' which performs a similar function using a different identifier, missing explicit differentiation.

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 is provided on when to use this tool versus alternatives like 'ida_get_function_assembly_by_name' or 'ida_get_current_function_assembly'. The description implies usage by address but offers no context on prerequisites, error conditions, or comparative scenarios with sibling tools.

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

ida_get_function_assembly_by_nameC

Get assembly code for a function by name

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't reveal any behavioral traits such as whether it's read-only, potential errors (e.g., if function doesn't exist), output format, or any side effects. This leaves significant gaps for safe and effective use.

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 single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple tool and front-loads the key information without unnecessary elaboration.

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?

Given the lack of annotations, no output schema, and low schema description coverage, the description is incomplete. It doesn't address behavioral aspects, error conditions, or output details, which are crucial for a tool that interacts with a complex system like IDA Pro. The agent would have significant uncertainty about how to interpret results or handle failures.

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 must compensate. It mentions 'by name' which implies the 'function_name' parameter, adding some semantic context beyond the bare schema. However, it doesn't specify format requirements (e.g., case sensitivity, naming conventions) or provide examples, leaving the parameter only partially clarified.

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 clearly states the action ('Get assembly code') and target ('for a function by name'), which is specific and unambiguous. However, it doesn't differentiate from its sibling 'ida_get_function_assembly_by_address' which serves a similar purpose but uses a different identifier (address vs name).

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?

The description provides no guidance on when to use this tool versus alternatives like 'ida_get_function_assembly_by_address' or 'ida_get_current_function_assembly'. There's no mention of prerequisites, context requirements, or any exclusion criteria, leaving the agent to infer usage from tool names alone.

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

ida_get_function_decompiled_by_addressC

Get decompiled pseudocode for a function by address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe traits like whether it's read-only or mutating, potential errors (e.g., invalid address), or output format (e.g., text, structured data). This leaves significant gaps in understanding how the tool behaves.

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 single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a simple tool, with no wasted information.

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?

Given the tool's complexity (decompilation likely involves non-trivial processing), lack of annotations, no output schema, and low schema coverage, the description is inadequate. It doesn't explain what 'decompiled pseudocode' entails, potential limitations, or return values, making it incomplete for effective use by an AI agent.

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

Parameters2/5

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

The input schema has 0% description coverage, with one parameter 'address' undocumented. The description mentions 'by address' but doesn't specify the format (e.g., hexadecimal, decimal), valid ranges, or examples. It adds minimal semantic value beyond what's implied by the parameter name, failing to compensate for the low schema coverage.

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 clearly states the action ('Get decompiled pseudocode') and target ('for a function by address'), making the purpose understandable. However, it doesn't explicitly differentiate from its sibling 'ida_get_function_decompiled_by_name', which performs a similar function but uses a name instead of an address as input.

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 is provided on when to use this tool versus alternatives. The description lacks context about prerequisites (e.g., whether the function must exist at the address) or comparisons to siblings like 'ida_get_current_function_decompiled' or 'ida_get_function_decompiled_by_name', leaving usage unclear.

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

ida_get_function_decompiled_by_nameC

Get decompiled pseudocode for a function by name

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool's purpose but lacks critical details: it doesn't specify if this is a read-only operation (likely, but not confirmed), what happens if the function name isn't found (e.g., returns error or null), or any performance considerations like rate limits. The description is minimal and doesn't compensate for the absence of annotations.

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 single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded and appropriately sized for a simple tool, with no wasted verbiage.

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?

Given the complexity (a tool interacting with a disassembler like IDA), no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't address key aspects such as error handling, output format (e.g., text or structured data), or integration context, making it inadequate for safe and effective use by an agent.

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

Parameters2/5

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

The input schema has 1 parameter with 0% description coverage, and the tool description doesn't add any semantic details about the 'function_name' parameter. It doesn't explain what constitutes a valid function name (e.g., format, case-sensitivity, or scope), leaving the agent with only the parameter title and type from the schema. This is insufficient given the low schema coverage.

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 clearly states the action ('Get decompiled pseudocode') and target resource ('for a function by name'), which is specific and unambiguous. However, it doesn't explicitly differentiate from its sibling 'ida_get_function_decompiled_by_address', which performs a similar operation but uses an address instead of a name as the identifier.

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 is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether the function name must exist in the current IDA database), nor does it contrast with siblings like 'ida_get_function_decompiled_by_address' or 'ida_get_current_function_decompiled', leaving the agent to infer usage context.

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

ida_get_global_variable_by_addressC

Get information about a global variable by address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does without disclosing behavioral traits. It lacks details on permissions, rate limits, output format, or potential side effects, which is inadequate for a tool with unknown complexity.

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 single, efficient sentence with zero wasted words, making it appropriately sized and front-loaded. Every word contributes to the core purpose.

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?

Given no annotations, no output schema, and low parameter coverage, the description is incomplete. It fails to address what information is returned, error conditions, or integration with sibling tools, leaving significant gaps for effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but only vaguely mentions 'by address' without explaining the address format, valid ranges, or examples. This adds minimal meaning beyond the schema's basic parameter name.

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 clearly states the action ('Get information about') and target resource ('a global variable by address'), making the purpose understandable. However, it doesn't differentiate from its sibling 'ida_get_global_variable_by_name' beyond the parameter type, missing explicit distinction.

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 is provided on when to use this tool versus alternatives like 'ida_get_global_variable_by_name' or other sibling tools. The description implies usage by address but offers no context on prerequisites, exclusions, or typical scenarios.

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

ida_get_global_variable_by_nameC

Get information about a global variable by name

ParametersJSON Schema
NameRequiredDescriptionDefault
variable_nameYes

TDQS

C2.6/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 full burden. It states the tool 'Get information about' a global variable, implying a read-only operation, but doesn't disclose behavioral traits such as error handling, permissions needed, rate limits, or what happens if the variable doesn't exist. This leaves significant gaps 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.

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?

Given the complexity (a read operation with no annotations, 1 parameter, 0% schema coverage, and no output schema), the description is incomplete. It doesn't explain what information is returned, error conditions, or usage context, leaving the agent with insufficient information to use the tool effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'by name' which hints at the 'variable_name' parameter, but doesn't add meaning beyond what the schema's title ('Variable Name') provides. No details on format, constraints, or examples are given, failing to adequately document the single parameter.

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

Purpose3/5

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

The description states the action ('Get information about') and resource ('global variable by name'), which is clear but vague. It distinguishes from sibling tools like 'ida_get_global_variable_by_address' by specifying 'by name', but lacks specificity about what information is retrieved (e.g., type, value, address).

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 versus alternatives is provided. The description implies usage for retrieving global variable information by name, but it doesn't mention prerequisites, when not to use it, or compare it to siblings like 'ida_get_global_variable_by_address' or other variable-related tools.

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

ida_rename_functionB

Rename a function in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
old_nameYes
new_nameYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but lacks behavioral details. It states the action is a rename but does not disclose effects like whether changes are permanent, require specific permissions, or affect related data (e.g., references). This is inadequate for a mutation tool with zero annotation coverage.

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 single, direct sentence with no wasted words, making it easy to parse. It is appropriately sized for the tool's complexity and front-loads the core action effectively.

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?

For a mutation tool with no annotations, no output schema, and 2 parameters, the description is incomplete. It lacks details on behavior, side effects, error conditions, or return values, leaving significant gaps for an AI agent to understand the tool fully.

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 implies parameters for old and new names, aligning with the schema's two parameters. With 0% schema description coverage, it adds meaningful context by indicating the tool renames a function, though it does not detail format constraints or examples. For 2 parameters, this provides adequate semantic value.

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 clearly states the action ('Rename') and target resource ('a function in the IDA database'), making the purpose immediately understandable. It distinguishes from some siblings like comment or get tools, though not explicitly from other rename tools (e.g., ida_rename_global_variable).

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 is provided on when to use this tool versus alternatives. The description does not mention prerequisites, when-not scenarios, or differentiate from similar rename tools (e.g., ida_rename_multi_functions for batch operations), leaving usage context unclear.

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

ida_rename_global_variableC

Rename a global variable in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
old_nameYes
new_nameYes

TDQS

C2.9/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 of behavioral disclosure. It states the action 'rename' but doesn't describe traits such as whether this is a destructive mutation, if it requires specific permissions in IDA, potential side effects (e.g., updating references), or error handling (e.g., what happens if the old name doesn't exist). This leaves significant gaps 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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

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?

Given the complexity of a mutation tool with no annotations, no output schema, and 0% schema coverage, the description is incomplete. It lacks details on behavioral traits, parameter semantics, and usage context, which are crucial for an agent to correctly invoke this tool in an IDA database environment. The description does the minimum but leaves too many gaps.

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 schema provides no descriptions for the parameters 'old_name' and 'new_name'. The description doesn't add any semantic details about these parameters, such as format constraints (e.g., string patterns), examples, or validation rules. However, with only 2 parameters and straightforward names, the baseline is 3 as the description doesn't compensate for the lack of schema coverage but the simplicity keeps it from being lower.

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 clearly states the verb 'rename' and the resource 'global variable in the IDA database', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'ida_rename_local_variable' or 'ida_rename_multi_global_variables', which would require mentioning it's for single global variables versus multi-renaming or local variables.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing global variable), exclusions (e.g., not for local variables), or direct comparisons to siblings like 'ida_rename_multi_global_variables' for batch operations or 'ida_rename_local_variable' for different variable types.

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

ida_rename_local_variableC

Rename a local variable within a function in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes
old_nameYes
new_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks behavioral details. It states the action is a rename, implying mutation, but doesn't cover permissions needed, whether changes are reversible, effects on references, or error handling (e.g., if variable doesn't exist). This is inadequate for a mutation tool with zero annotation coverage.

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 single, efficient sentence with zero wasted words, front-loading the core action and target. It's appropriately sized for the tool's complexity, making it easy to parse quickly.

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?

For a mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lacks details on behavior, parameter usage, return values, and error cases, leaving significant gaps for an AI agent to use it 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 description coverage is 0%, so the description must compensate but only implies parameters through context ('Rename a local variable within a function'). It doesn't explain what function_name, old_name, or new_name represent (e.g., format, case-sensitivity) or constraints. Baseline is 3 as it adds minimal meaning beyond the bare schema.

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 clearly states the action ('Rename') and target ('a local variable within a function in the IDA database'), making the purpose immediately understandable. It distinguishes from siblings like ida_rename_function or ida_rename_global_variable by specifying 'local variable', but doesn't explicitly contrast with ida_rename_multi_local_variables for batch operations.

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 is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., function must exist), when not to use it (e.g., for global variables), or direct alternatives like ida_rename_multi_local_variables for multiple renames, leaving usage context unclear.

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

ida_rename_multi_functionsC

Rename multiple functions at once in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
rename_pairs_old2newYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action is a rename operation (implying mutation) but doesn't disclose critical details like whether changes are reversible, permission requirements, error handling for invalid inputs, or effects on the IDA database state. This leaves significant gaps 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 a single, efficient sentence that directly states the tool's purpose without redundancy. It's appropriately sized for a straightforward operation, though its brevity contributes to gaps in other dimensions. Every word serves a clear function.

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?

Given the tool's mutation nature, lack of annotations, 0% schema coverage, and no output schema, the description is inadequate. It doesn't address behavioral risks, parameter usage, or expected outcomes, leaving the agent poorly equipped to use this tool correctly in the IDA database context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain the structure of 'rename_pairs_old2new', the expected format of old/new names, validation rules, or examples. The agent must rely solely on the bare schema, which is insufficient for a complex array-of-objects 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 clearly states the action ('Rename multiple functions at once') and the target resource ('in the IDA database'), making the purpose understandable. It distinguishes from the single-function sibling 'ida_rename_function' by specifying 'multiple functions at once', but doesn't explicitly differentiate from other multi-rename tools like 'ida_rename_multi_global_variables' beyond the function focus.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when batch renaming is preferred over the single-function 'ida_rename_function', nor does it explain prerequisites, constraints, or typical use cases. The agent must infer usage from the tool name alone.

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

ida_rename_multi_global_variablesC

Rename multiple global variables at once in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
rename_pairs_old2newYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Rename' implies a destructive mutation, the description doesn't address critical behavioral aspects: whether this requires specific permissions, if changes are reversible, what happens to references to renamed variables, or potential side effects. This is inadequate for a mutation tool with zero annotation coverage.

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 perfectly concise - a single sentence that directly states the tool's purpose with zero wasted words. It's front-loaded with the core action and appropriately sized for what it communicates.

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?

For a mutation tool with no annotations, 0% schema coverage, and no output schema, the description is insufficient. It doesn't explain the parameter format, behavioral implications, error conditions, or what the tool returns. Given the complexity of batch renaming operations in a database context, more contextual information is needed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. The description mentions 'multiple global variables' which hints at the array parameter, but provides no details about the 'rename_pairs_old2new' structure, expected format, or how to specify old-to-new mappings. This leaves the single parameter largely unexplained.

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 clearly states the action ('Rename multiple global variables at once') and resource ('in the IDA database'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'ida_rename_global_variable' (singular) or 'ida_rename_multi_functions' (different resource type), which would be needed for a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over the singular 'ida_rename_global_variable' tool or when batch renaming is appropriate versus individual operations, leaving the agent without usage context.

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

ida_rename_multi_local_variablesC

Rename multiple local variables within a function at once in the IDA database

ParametersJSON Schema
NameRequiredDescriptionDefault
function_nameYes
rename_pairs_old2newYes

TDQS

C2.8/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 of behavioral disclosure. It states the action is a rename operation, implying mutation, but lacks details on permissions needed, whether changes are reversible, error handling, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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 single, efficient sentence that front-loads the core action and resource. There is no wasted verbiage, making it easy to parse quickly.

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?

Given the tool's complexity (mutation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values, leaving the agent with insufficient context for safe and effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'function' and 'rename pairs', which loosely map to the two parameters, but doesn't explain the format of 'rename_pairs_old2new' (e.g., array of objects with old-new mappings) or provide examples. This adds minimal value beyond the schema's property names.

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 clearly states the action ('Rename multiple local variables') and the resource ('within a function in the IDA database'), which is specific and informative. However, it doesn't explicitly differentiate from its sibling 'ida_rename_local_variable', which handles single renames, though this distinction is implied by 'multiple' vs. the sibling's singular name.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an open IDA database), exclusions, or compare it to siblings like 'ida_rename_local_variable' for single renames or 'ida_rename_multi_functions' for different rename operations.

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

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific resources (assembly, pseudocode, comments, renaming) with clear boundaries, though the two script execution tools (ida_execute_script and ida_execute_script_from_file) could be confused as they differ only in input source but serve the same core function. Other tools are well-differentiated by action and target.

Naming Consistency5/5

All tools follow a consistent 'ida_verb_noun' pattern with snake_case throughout, using clear verbs like 'add', 'get', 'rename', and 'execute'. The naming is predictable and readable, making it easy to understand each tool's function at a glance.

Tool Count4/5

With 19 tools, the count is slightly high but reasonable for an IDA Pro server covering analysis tasks like comments, code retrieval, script execution, and renaming. It avoids bloat by focusing on core functionalities, though some tools could potentially be consolidated (e.g., the multiple rename variants).

Completeness5/5

The tool set provides comprehensive coverage for IDA Pro interaction, including CRUD-like operations for comments, retrieval of assembly and pseudocode by various identifiers, renaming of functions and variables (single and batch), and script execution. No obvious gaps exist for typical reverse engineering workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables Large Language Models to interact with Binary Ninja for reverse engineering tasks like viewing assembly code, decompiled code, renaming functions, and adding comments.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An Model Context Protocol server that enables LLMs to autonomously reverse engineer applications by exposing Ghidra's decompilation and analysis tools. It allows AI agents to list code structures, rename methods, and analyze binaries directly through MCP-compatible clients.
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    A lightweight MCP server that exposes IDA Pro's disassembly, decompilation, and symbol query capabilities to AI clients, with reduced tool set for lower token consumption.
    284

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/MxIris-Reverse-Engineering/ida-mcp-server'

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