1#![forbid(unsafe_code)]
8#![deny(missing_docs)]
9
10#[cfg(feature = "cassette")]
11mod cassette;
12#[cfg(feature = "client")]
13mod client;
14mod content;
15mod exec;
16#[cfg(feature = "http")]
17mod http;
18mod install;
19mod manifest;
20mod methods;
21mod native;
22mod ops;
23mod profile;
24mod router;
25#[cfg(feature = "sampling")]
26mod sampling;
27mod schema;
28mod session;
29#[cfg(feature = "skill")]
30mod skill;
31#[cfg(feature = "stdio")]
33pub mod stdio;
34#[cfg(feature = "stream")]
35mod stream;
36mod surface;
37mod uri;
38
39#[cfg(all(test, feature = "cassette"))]
40mod cassette_tests;
41#[cfg(all(test, feature = "client"))]
42mod client_tests;
43#[cfg(all(test, feature = "skill"))]
44mod coexistence_tests;
45#[cfg(all(test, feature = "http"))]
46mod http_tests;
47#[cfg(test)]
48mod prompts_tests;
49#[cfg(test)]
50mod resources_tests;
51#[cfg(all(test, feature = "sampling"))]
52mod sampling_tests;
53#[cfg(all(test, feature = "stream", feature = "progress"))]
54mod stream_tests;
55#[cfg(test)]
56mod tests;
57#[cfg(test)]
58mod tools_call_tests;
59#[cfg(test)]
60mod tools_list_tests;
61
62#[cfg(feature = "cassette")]
63pub use cassette::{
64 McpAuditEntry, McpCassette, McpCassetteEntry, mcp_audit_entry_class_symbol,
65 mcp_cassette_class_symbol, mcp_cassette_entry_class_symbol,
66};
67#[cfg(feature = "client")]
68pub use client::{
69 McpClient, McpClientAllowPolicy, McpClientCassettePeer, McpClientPeer, McpClientTransport,
70 RouterMcpPeer, mcp_client_capability,
71};
72pub use exec::{
73 mcp_prompts_get_capability, mcp_resources_read_capability, mcp_tools_call_capability,
74};
75#[cfg(feature = "http")]
76pub use http::{McpHttpAdapter, mcp_http_capability};
77pub use install::install_mcp_lib;
78pub use manifest::{McpLib, manifest_name};
79pub use native::{
80 McpExportFacet, McpNativeCard, NativeFacet, mcp_export_facet_name, mcp_export_operation_symbol,
81 native_surface_rows,
82};
83pub use ops::{
84 McpFunction, call_symbol, get_prompt_symbol, handle_symbol, health_symbol, initialize_symbol,
85 mcp_exports, prompts_symbol, read_symbol, resources_symbol, tools_symbol,
86};
87pub use profile::McpProfile;
88pub use router::{McpRouter, RouterReply};
89#[cfg(feature = "sampling")]
90pub use sampling::{
91 FixtureSamplingHost, McpSamplingHost, McpSamplingRunner, McpSamplingRunnerValue,
92 mcp_sampling_capability, mcp_sampling_data_kind, mcp_sampling_runner_symbol,
93 sampling_runner_value,
94};
95pub use schema::shape_to_json_schema;
96pub use session::McpSession;
97#[cfg(feature = "skill")]
98pub use skill::{project_skill_surface, skill_surface_rows};
99#[cfg(feature = "stream")]
100pub use stream::{
101 mcp_cancelled_data_kind, mcp_failed_diagnostic_kind, mcp_overflowed_diagnostic_kind,
102 mcp_progress_data_kind, mcp_truncated_diagnostic_kind,
103};
104pub use surface::{
105 McpAnnotation, McpAnnotationVisibility, McpStreamPolicy, McpSurfaceCard, McpSurfaceRole,
106 McpSurfaceSource, project_mcp_surface, project_native_surface, project_surface_rows,
107 stable_mcp_name,
108};
109
110pub const MCP_LIB_ID: &str = "mcp";