# MCP API glossary

Source: https://libtmux.org/en/py/stable/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 Python API reference.

### class

A Python type defining attributes and behavior for its instances.

References: [Python classes](https://docs.python.org/3/tutorial/classes.html).

### function

A Python callable defined with def or a lambda expression.

References: [Python function definitions](https://docs.python.org/3/reference/compound_stmts.html#function-definitions).

### method

A Python callable obtained through a class or instance. An ordinary bound method supplies its instance as the first argument.

References: [Python instance methods](https://docs.python.org/3/reference/datamodel.html#instance-methods).

### property

A Python descriptor whose getter, setter or deleter runs during attribute access.

A property need not correspond to a stored field, and reading it may execute code.

References: [Python properties](https://docs.python.org/3/library/functions.html#property).

### attribute

A named Python value accessed on an object or class, potentially through a descriptor or dynamic lookup.

References: [Python attribute access](https://docs.python.org/3/reference/datamodel.html#customizing-attribute-access).

### constant

A named Python API value conventionally treated as constant. Uppercase naming does not prevent reassignment at runtime.

References: [Python constant naming](https://peps.python.org/pep-0008/#constants).

### exception

A Python exception class whose instances can be raised and handled with except.

References: [Python exceptions](https://docs.python.org/3/tutorial/errors.html#user-defined-exceptions).

## Modifiers

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

### classmethod

A Python method that receives the class as its implicit first argument, including when called through an instance.

References: [Python class methods](https://docs.python.org/3/library/functions.html#classmethod).

### async

A Python coroutine function declared with async def. Calling it creates a coroutine to await or schedule.

References: [Python coroutine functions](https://docs.python.org/3/reference/compound_stmts.html#coroutine-function-definition).

### inherited

A Python member resolved from a base class through the method resolution order.

The reference names the declaring class so its original definition remains navigable.

References: [Python inheritance](https://docs.python.org/3/tutorial/classes.html#inheritance).

## Package context

Package labels identify where an API is supplied.

### package

The Python distribution supplying this API. Its installation name can differ from the package name used in imports.

References: [Python distributions and import packages](https://packaging.python.org/en/latest/discussions/distribution-package-vs-import-package/).
