# phantom_mcp v0.4.5 - Table of Contents

Elixir MCP (Model Context Protocol) server library with Plug

## Pages

- [CHANGELOG](changelog.md)

## Modules

- [Phantom](Phantom.md): 
- [Phantom.Cache](Phantom.Cache.md): Storage for tooling specifications. The backend is `:persistent_term`.
- [Phantom.ClientLogger](Phantom.ClientLogger.md): Notify the client of logs.

- [Phantom.Elicit](Phantom.Elicit.md): The Model Context Protocol (MCP) provides a standardized way for
servers to request additional information from users through the
client during interactions. This flow allows clients to maintain
control over user interactions and data sharing while enabling
servers to gather necessary information dynamically. Servers
request structured data from users with JSON schemas to validate
responses.
- [Phantom.Icon](Phantom.Icon.md): An optionally-sized icon that can be displayed in a user interface.
- [Phantom.Plug](Phantom.Plug.md): Main Plug implementation for MCP HTTP transport with SSE support.
- [Phantom.Prompt](Phantom.Prompt.md): The Model Context Protocol (MCP) provides a standardized way
for servers to expose prompt templates to clients. Prompts
allow servers to provide structured messages and instructions
for interacting with language models. Clients can discover
available prompts, retrieve their contents, and provide arguments
to customize them.
- [Phantom.Prompt.Argument](Phantom.Prompt.Argument.md): 

- [Phantom.Request](Phantom.Request.md): Standard requests and responses for the MCP protocol
- [Phantom.Resource](Phantom.Resource.md): The Model Context Protocol (MCP) provides a standardized way for
servers to expose resources to clients. Resources allow servers to
share data that provides context to language models, such as files,
database schemas, or application-specific information. Each resource
is uniquely identified by a URI.
- [Phantom.ResourceTemplate](Phantom.ResourceTemplate.md): The Model Context Protocol (MCP) provides a standardized way for
servers to expose resources to clients. Resources allow servers to
share data that provides context to language models, such as files,
database schemas, or application-specific information. Each resource
is uniquely identified by a URI.
- [Phantom.Router](Phantom.Router.md): A DSL for defining MCP servers.
This module provides functions that define tools, resources, and prompts.
- [Phantom.Session](Phantom.Session.md): Represents the state of the MCP session. This is the state across the conversation
and is the bridge between the various transports (HTTP, stdio) to persistence,
even if stateless.

- [Phantom.Stdio](Phantom.Stdio.md): MCP server transport over stdin/stdout.
- [Phantom.Tool](Phantom.Tool.md): The Model Context Protocol (MCP) allows servers to expose tools
that can be invoked by language models. Tools enable models to
interact with external systems, such as querying databases,
calling APIs, or performing computations. Each tool is uniquely
identified by a name and includes metadata describing its schema.
- [Phantom.Tool.Annotation](Phantom.Tool.Annotation.md): Tool annotations provide additional metadata about a
tool’s behavior, helping clients understand how to present
and manage tools. These annotations are hints that describe
the nature and impact of a tool, but should not be relied
upon for security decisions
- [Phantom.Tool.JSONSchema](Phantom.Tool.JSONSchema.md): JSON Schema for tool input and output schemas.
- [Phantom.Tracker](Phantom.Tracker.md): Track open streams so that notifications and requests can be sent to clients.

- Exceptions
  - [Phantom.ErrorWrapper](Phantom.ErrorWrapper.md): Wraps errors that occur during a request or batch or requests.
This allows the connection to finish, and then reraises with this error
containing the exceptions by request.

