# phantom_mcp v0.4.4 - 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.