Skip to main content
Glama

ffi_surface

Identify the FFI surface of a repository by finding #[uniffi::export] items, exported impl members, and generated binding artifacts. Returns empty for repos without FFI.

Instructions

Find the FFI surface: #[uniffi::export] items, exported impl members, and generated binding artifacts (detected by path). Empty in repos without FFI.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
worktreeNoAbsolute path of the checkout to scope reads to — pass a linked worktree to read its branch overlay. Defaults to the server's working directory. A path that is not a linked worktree of this repo is silently ignored: results then come from the indexed checkout, with no error.
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the detection mechanism ('detected by path') and the key edge case ('Empty in repos without FFI'). It could further describe output format or ordering, but the essential behavioral traits are disclosed.

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, front-loaded sentence with no wasted words. It states the action, scope, detection heuristic, and an important empty-result caveat in under 25 words.

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

Completeness4/5

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

For a simple read/search tool with no output schema, the description explains what is returned and the empty-case behavior. The worktree parameter semantics are covered in the schema, and the tool's scope is narrow. A fully complete description might also describe result shape or ordering, but the current level is sufficient for selection and basic 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?

The description adds no meaning to the parameters. Schema coverage is 50%: 'worktree' is well documented in the schema, but 'limit' has no description and the tool description does not mention either parameter. The description misses an opportunity to clarify how 'limit' affects results or how 'detected by path' relates to the worktree scope.

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

Purpose5/5

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

The description uses a specific verb ('Find') and identifies a well-scoped resource ('the FFI surface') while enumerating exact constituents: '#[uniffi::export] items, exported impl members, and generated binding artifacts (detected by path)'. It clearly differentiates this from sibling tools like symbol_lookup or impact_surface by describing a distinctive FFI-specific surface.

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 clear context: it is for locating FFI-related declarations and artifacts, and it notes that results are empty in repositories without FFI. It does not explicitly name alternative tools or provide when-not-to-use guidance, but the intended use case is clear.

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/cq27-dev/rag-rat'

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