This page provides a comprehensive reference for all tools, prompts, and resources exposed by the Everything Server. It documents the registration patterns, input schemas, and behavior of each feature. For architectural patterns and server organization, see Architecture and Design Patterns. For details on Tasks, Sampling, and Elicitation implementations, see Advanced Features.
The Everything Server exposes a variety of tools demonstrating the breadth of MCP capabilities. These range from simple utility functions to complex, multi-step operations involving resource registration and client callbacks.
Sources: src/everything/tools/index.ts26-55
| Tool Name | Input Schema | Purpose | File Location |
|---|---|---|---|
echo | message: string | Basic echo demonstration with Zod validation | src/everything/tools/echo.ts11-22 |
get-sum | a: number, b: number | Calculates sum of two numbers | src/everything/tools/get-sum.ts12-23 |
get-env | None | Returns all process environment variables as JSON | src/everything/tools/get-env.ts5-17 |
get-tiny-image | None | Returns tiny PNG MCP logo as image content | src/everything/tools/get-tiny-image.ts |
get-annotated-message | messageType: "error"|"success"|"debug", includeImage?: boolean | Demonstrates annotated content with priority/audience | src/everything/tools/get-annotated-message.ts18-30 |
get-structured-content | location: "New York"|"Chicago"|"Los Angeles" | Demonstrates structuredContent with outputSchema | src/everything/tools/get-structured-content.ts23-36 |
get-resource-links | count: number (1-10) | Returns multiple resource_link items | src/everything/tools/get-resource-links.ts22-34 |
get-resource-reference | resourceType: "text"|"blob", resourceId: number | Returns concrete resource content block | src/everything/tools/get-resource-reference.ts26-37 |
gzip-file-as-resource | name: string, data: string (URL), outputType?: "resourceLink"|"resource" | Fetches, compresses, registers as session resource | src/everything/tools/gzip-file-as-resource.ts44-56 |
toggle-simulated-logging | None | Starts/stops random-level logging for session | src/everything/tools/toggle-simulated-logging.ts9-20 |
toggle-subscriber-updates | None | Starts/stops resource update notifications | src/everything/tools/toggle-subscriber-updates.ts9-20 |
echo - Validates input using EchoSchema and returns the message prefixed with "Echo: ".
Sources: src/everything/tools/echo.ts33-40
get-sum - Validates two numeric inputs a and b and returns their mathematical sum.
Sources: src/everything/tools/get-sum.ts38-51
get-env - Retrieves process.env and returns it as a stringified JSON block.
Sources: src/everything/tools/get-env.ts28-39
get-annotated-message - Uses the annotations field in ContentBlock to provide metadata. For example, error types receive a priority of 1.0 and an audience of ["user", "assistant"].
Sources: src/everything/tools/get-annotated-message.ts44-95
get-structured-content - Returns weather data for a selected city. It provides both a content array (for backward compatibility) and a structuredContent object that follows the GetStructuredContentOutputSchema.
Sources: src/everything/tools/get-structured-content.ts52-92
get-resource-reference - Fetches a specific resource by ID and type using templates from resources/templates.ts, then returns a content block of type resource. This allows the client to see the resource metadata and content directly in the tool output.
Sources: src/everything/tools/get-resource-reference.ts55-104
get-resource-links - Dynamically generates resource_link content blocks. It alternates between text and blob resource URIs based on whether the resource ID is even or odd.
Sources: src/everything/tools/get-resource-links.ts47-86
gzip-file-as-resource - A complex tool that fetches data from a URL, compresses it using Node.js zlib, and then uses registerSessionResource to make the result available for the remainder of the session. It supports an allowlist of domains via GZIP_ALLOWED_DOMAINS.
Sources: src/everything/tools/gzip-file-as-resource.ts73-126
The Everything Server registers specialized tools conditionally, typically based on client capabilities established during initialization.
This logic is implemented in registerConditionalTools, which handles tools for roots, sampling, elicitation, and experimental task-based research.
Sources: src/everything/tools/index.ts45-55
The Everything Server exposes several prompts to demonstrate interaction patterns:
| Prompt Name | Arguments | Purpose | File Location |
|---|---|---|---|
simple-prompt | None | Basic static prompt | src/everything/prompts/simple.ts |
args-prompt | city, state | Prompt with required and optional arguments | src/everything/prompts/args.ts |
completable-prompt | department, name | Demonstrates argument autocompletion | src/everything/prompts/completions.ts |
The Everything Server provides a mix of static, dynamic, and session-scoped resources.
Dynamic resources are defined in resources/templates.ts, which provides helpers for generating text and binary resources.
textResource: Generates a plaintext resource object.blobResource: Generates a binary blob resource object.Sources: src/everything/resources/templates.ts5-12
Session resources are ephemeral and registered during tool execution (e.g., by gzip-file-as-resource).
registerSessionResource (from resources/session.ts) adds the resource to the server and returns a resourceLink.getSessionResourceURI(name).Sources: src/everything/resources/session.ts6-8 src/everything/tools/gzip-file-as-resource.ts94-106
The server supports resource tracking and simulated updates to demonstrate the subscription model.
toggle-subscriber-updates: This tool enables a 5-second pace loop that sends notifications/resources/updated for any resources the client is currently subscribed to.toggle-simulated-logging: Similarly, this tool toggles a loop that sends random-leveled logs to the client using beginSimulatedLogging.Sources: src/everything/tools/toggle-subscriber-updates.ts40-63 src/everything/tools/toggle-simulated-logging.ts37-60
Refresh this wiki