# MCP API glossary

Source: https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/reference/glossary/

> What MCP tool annotations tell clients about a tool.

## MCP tool annotations

These are server-supplied hints, not enforced guarantees. Clients must not base tool-use decisions on annotations from untrusted servers.

### readOnlyHint

True indicates that the tool leaves its environment unchanged.

Defaults to false when omitted.

References: [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations).

### destructiveHint

True indicates potentially destructive changes; false indicates additive changes only.

Defaults to true. Meaningful only when readOnlyHint is false.

References: [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations).

### idempotentHint

True indicates that repeating a call with identical arguments adds no further effects.

Defaults to false. Meaningful only when readOnlyHint is false. It does not promise identical responses.

References: [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations).

### openWorldHint

True indicates possible interaction with external entities; false indicates a closed interaction domain.

Defaults to true. This describes the interaction domain, not whether the tool writes data.

References: [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations).

### title

A display title for the tool.

The tool’s top-level title takes precedence, followed by annotations.title, then name.

References: [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations).

## Symbol kinds

Kinds identify declarations in the Ruby API reference.

### module

A Ruby namespace that can also supply instance methods as a mixin.

References: [Ruby modules](https://docs.ruby-lang.org/en/3.4/syntax/modules_and_classes_rdoc.html).

### class

A Ruby object type defining instance behavior and inheriting from a superclass.

References: [Ruby classes](https://docs.ruby-lang.org/en/3.4/syntax/modules_and_classes_rdoc.html).

### method

A Ruby operation called on a receiver, usually declared with def.

Instance methods act on instances; singleton methods act on a particular object, including a class object.

References: [Ruby methods](https://docs.ruby-lang.org/en/3.4/syntax/methods_rdoc.html).

### typealias

An RBS type alias used to describe Ruby values for tooling. It does not define a runtime class.

References: [RBS type aliases](https://github.com/ruby/rbs/blob/master/docs/syntax.md#type-alias-declaration).

## Modifiers

Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature.

### static

A Ruby class-level or module-level singleton method, called on that object.

References: [Ruby singleton methods](https://docs.ruby-lang.org/en/3.4/syntax/methods_rdoc.html).

## Package context

Package labels identify where an API is supplied.

### package

The Ruby gem supplying this API. Gem names identify distributions; require loads Ruby files.

References: [Ruby gems](https://guides.rubygems.org/what-is-a-gem/).
