ZenZ MCP Specification
What is MCP?
The Model Context Protocol (MCP) is an open standard and open-source framework that standardizes how AI models, like large language models (LLMs), connect with external tools and data sources. Providing a consistent interface for these systems to share information.
ZenZ MCP
ZenZ leverages the Model Context Protocol (MCP) to make any Web2/Web3/Agentic application more intelligent by enabling seamless connections to diverse resources.
Standardized Infrastructure
All infrastructure components—Network, Identity, Storage, Compute, and Trust—expose their functionality through standardized MCP interfaces, ensuring consistent adapter development across the ZenZ ecosystem:
- Standardized APIs: Consistent request/response patterns
- Unified Authentication: Single auth flow across all services
- Resource URIs: Standard addressing scheme
- Error Handling: Consistent error response format
Understanding MCP Components
The Model Context Protocol (MCP) comprises three core elements:
- Tools: Actions the AI can execute, such as running code or making API calls
- Resources: Read-only data the AI can reference, like files or database records
- Prompts: Structured message templates that define standardized interactions and guide AI behavior, typically triggered through slash commands or menus for repeatable workflows
Together, these components enable intelligent, context-aware applications that can access and interact with various data sources and services consistently.
Specification
Base Interface implemented by all the services
interface ZenZService {
/* Get the service type identifier */
getServiceType(): ServiceType;
/* Get the service version */
getVersion(): string;
/* List resources matching the given URI pattern */
listResources(
params: ResourcesListParams,
auth: AuthContext
): ResourcesListResponse
/* Read a specific resource */
readResource(
params: ResourcesReadParams,
auth: AuthContext
): ResourcesReadResponse
/* Write or update a resource */
writeResource(
params: ResourcesWriteParams,
auth: AuthContext
): ResourcesWriteResponse
/* List all available tools provided by this service */
listTools(
params: ToolsListParams,
auth: AuthContext
): ToolsListResponse
/* Execute a tool operation */
callTool(
params: ToolsCallParams,
auth: AuthContext
): ToolsCallResponse
/* Get service health status */
getHealth(): Promise<ServiceHealth>;
/* Check if service is ready to accept requests */
isReady(): Promise<boolean>;
/* Validate authentication token and return auth contex */
authenticate(token: string): Promise<AuthContext>;
}ServiceType
enum ServiceType {
Z_CONNECT = 'z-connect',
Z_ID = 'z-id',
Z_STORAGE = 'z-storage',
Z_COMPUTE = 'z-compute',
Z_TRUST = 'z-trust',
}AuthContext
export interface AuthContext {
/** Authenticated user ID */
userId: string;
/** User's identifiers */
identifiers?: string[];
/** Application ID (if request from an app) */
appId?: string;
/** Granted permissions/scopes */
permissions: string[];
/** Token type */
tokenType: 'ZAT' | 'JWT';
/** Token expiration */
expiresAt: string;
/** Session ID */
sessionId?: string;
}