Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-mcp/src/lexigram/ai/mcp/__init__.py: 56%
18 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""lexigram-mcp — MCP Server for Lexigram Framework.
3Canonical import paths
4-----------------------
5MCPServer: from lexigram.ai.mcp import MCPServer
6MCPClient: from lexigram.ai.mcp import MCPClient
7MCPConfig: from lexigram.ai.mcp import MCPConfig
8ToolHandler: from lexigram.ai.mcp import ToolHandler
9ResourceHandler: from lexigram.ai.mcp import ResourceHandler
10PromptHandler: from lexigram.ai.mcp import PromptHandler
11StdioTransport: from lexigram.ai.mcp import StdioTransport
12SSETransport: from lexigram.ai.mcp import SSETransport
13MCPModule: from lexigram.ai.mcp import MCPModule
14MCPProvider: from lexigram.ai.mcp import MCPProvider
16Quick Start
17-----------
19 from lexigram.ai.mcp import MCPServer, MCPModule
20 from lexigram import LexigramApplication
22 app = LexigramApplication(
23 modules=[..., MCPModule()],
24 )
26 await app.run()
27"""
29from __future__ import annotations
31import importlib.metadata
32import pkgutil
33from typing import TYPE_CHECKING, Any
35__path__ = pkgutil.extend_path(__path__, __name__)
37from lexigram.ai.mcp.constants import __version__ as __version__
39if TYPE_CHECKING:
40 from lexigram.ai.mcp import MCPModule # type: ignore[attr-defined]
41 from lexigram.ai.mcp.adapters import ToolRegistryAdapter
42 from lexigram.ai.mcp.client.core import (
43 MCPClient,
44 MCPClientTransport,
45 SSEClientTransport,
46 StdioClientTransport,
47 )
48 from lexigram.ai.mcp.client.module import (
49 MCPClientModule,
50 MCPClientProvider,
51 MCPClientRegistry,
52 MCPConnection,
53 )
54 from lexigram.ai.mcp.config import MCPConfig
55 from lexigram.ai.mcp.controllers import (
56 ControllerPromptProvider,
57 ControllerResourceProvider,
58 ControllerToolProvider,
59 MCPController,
60 ModulePromptProvider,
61 ModuleResourceProvider,
62 ModuleToolProvider,
63 ServiceToolProvider,
64 )
65 from lexigram.ai.mcp.decorators import (
66 prompt,
67 resource,
68 tool,
69 )
70 from lexigram.ai.mcp.di.provider import MCPProvider
71 from lexigram.ai.mcp.exceptions import (
72 MCPError,
73 MCPInitializationError,
74 MCPMethodNotFoundError,
75 MCPPromptError,
76 MCPProtocolError,
77 MCPResourceError,
78 MCPToolCallError,
79 MCPTransportError,
80 )
81 from lexigram.ai.mcp.hooks import (
82 MCPServerStartedHook,
83 MCPServerStoppedHook,
84 MCPToolInvokedHook,
85 )
86 from lexigram.ai.mcp.protocols import (
87 MCPPromptHandlerProtocol,
88 MCPPromptProviderProtocol,
89 MCPResourceHandlerProtocol,
90 MCPResourceProviderProtocol,
91 MCPServerProtocol,
92 MCPToolHandlerProtocol,
93 MCPToolProviderProtocol,
94 MCPTransportProtocol,
95 )
96 from lexigram.ai.mcp.server import MCPServer
97 from lexigram.ai.mcp.server.handlers import (
98 PromptHandler,
99 ResourceHandler,
100 ToolHandler,
101 )
102 from lexigram.ai.mcp.transport import (
103 AbstractTransport,
104 SSETransport,
105 StdioTransport,
106 )
107 from lexigram.ai.mcp.types import (
108 MCPInitializeResult,
109 MCPJSONRPCRequest,
110 MCPJSONRPCResponse,
111 MCPPrompt,
112 MCPPromptMessage,
113 MCPResource,
114 MCPResourceContent,
115 MCPServerCapabilities,
116 MCPServerInfo,
117 MCPToolDefinition,
118 MCPToolResult,
119 )
121_LAZY_IMPORTS: dict[str, str] = {
122 "AbstractTransport": "lexigram.ai.mcp.transport",
123 "ControllerPromptProvider": "lexigram.ai.mcp.controllers",
124 "ControllerResourceProvider": "lexigram.ai.mcp.controllers",
125 "ControllerToolProvider": "lexigram.ai.mcp.controllers",
126 # Hooks
127 "MCPServerStartedHook": "lexigram.ai.mcp.hooks",
128 "MCPServerStoppedHook": "lexigram.ai.mcp.hooks",
129 "MCPToolInvokedHook": "lexigram.ai.mcp.hooks",
130 "MCPController": "lexigram.ai.mcp.controllers",
131 "MCPInitializeResult": "lexigram.ai.mcp.types",
132 "MCPJSONRPCRequest": "lexigram.ai.mcp.types",
133 "MCPJSONRPCResponse": "lexigram.ai.mcp.types",
134 "MCPPrompt": "lexigram.ai.mcp.types",
135 "MCPPromptMessage": "lexigram.ai.mcp.types",
136 "MCPResource": "lexigram.ai.mcp.types",
137 "MCPResourceContent": "lexigram.ai.mcp.types",
138 "MCPServerCapabilities": "lexigram.ai.mcp.types",
139 "MCPServerInfo": "lexigram.ai.mcp.types",
140 "MCPToolDefinition": "lexigram.ai.mcp.types",
141 "MCPToolResult": "lexigram.ai.mcp.types",
142 "ModulePromptProvider": "lexigram.ai.mcp.controllers",
143 "ModuleResourceProvider": "lexigram.ai.mcp.controllers",
144 "ModuleToolProvider": "lexigram.ai.mcp.controllers",
145 "ServiceToolProvider": "lexigram.ai.mcp.controllers",
146 "MCPClient": "lexigram.ai.mcp.client.core",
147 "MCPClientModule": "lexigram.ai.mcp.client.module",
148 "MCPClientProvider": "lexigram.ai.mcp.client.module",
149 "MCPClientRegistry": "lexigram.ai.mcp.client.module",
150 "MCPConnection": "lexigram.ai.mcp.client.module",
151 "MCPClientTransport": "lexigram.ai.mcp.client.core",
152 "MCPConfig": "lexigram.ai.mcp.config",
153 "MCPError": "lexigram.ai.mcp.exceptions",
154 "MCPInitializationError": "lexigram.ai.mcp.exceptions",
155 "MCPMethodNotFoundError": "lexigram.ai.mcp.exceptions",
156 "MCPModule": "lexigram.ai.mcp.module",
157 "MCPPromptError": "lexigram.ai.mcp.exceptions",
158 "MCPProtocolError": "lexigram.ai.mcp.exceptions",
159 "MCPProvider": "lexigram.ai.mcp.di.provider",
160 "MCPResourceError": "lexigram.ai.mcp.exceptions",
161 "MCPServer": "lexigram.ai.mcp.server",
162 "MCPToolCallError": "lexigram.ai.mcp.exceptions",
163 "MCPTransportError": "lexigram.ai.mcp.exceptions",
164 # Protocols
165 "MCPToolProviderProtocol": "lexigram.ai.mcp.protocols",
166 "MCPResourceProviderProtocol": "lexigram.ai.mcp.protocols",
167 "MCPPromptProviderProtocol": "lexigram.ai.mcp.protocols",
168 "MCPTransportProtocol": "lexigram.ai.mcp.protocols",
169 "MCPServerProtocol": "lexigram.ai.mcp.protocols",
170 "MCPToolHandlerProtocol": "lexigram.ai.mcp.protocols",
171 "MCPResourceHandlerProtocol": "lexigram.ai.mcp.protocols",
172 "MCPPromptHandlerProtocol": "lexigram.ai.mcp.protocols",
173 "PromptHandler": "lexigram.ai.mcp.server.handlers",
174 "ResourceHandler": "lexigram.ai.mcp.server.handlers",
175 "SSETransport": "lexigram.ai.mcp.transport",
176 "SSEClientTransport": "lexigram.ai.mcp.client.core",
177 "StdioClientTransport": "lexigram.ai.mcp.client.core",
178 "StdioTransport": "lexigram.ai.mcp.transport",
179 "ToolHandler": "lexigram.ai.mcp.server.handlers",
180 "ToolRegistryAdapter": "lexigram.ai.mcp.adapters",
181 "prompt": "lexigram.ai.mcp.decorators",
182 "resource": "lexigram.ai.mcp.decorators",
183 "tool": "lexigram.ai.mcp.decorators",
184}
187def __getattr__(name: str) -> Any:
188 if name in _LAZY_IMPORTS:
189 import importlib as _importlib
191 module = _importlib.import_module(_LAZY_IMPORTS[name])
192 value = getattr(module, name)
193 globals()[name] = value
194 return value
195 raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
198def __dir__() -> list[str]:
199 return sorted(set(__all__) | set(_LAZY_IMPORTS.keys()))
202__all__ = [
203 "AbstractTransport",
204 "ControllerPromptProvider",
205 "ControllerResourceProvider",
206 "ControllerToolProvider",
207 "MCPClient",
208 "MCPClientModule",
209 "MCPClientProvider",
210 "MCPClientRegistry",
211 "MCPClientTransport",
212 "MCPConfig",
213 "MCPConnection",
214 "MCPController",
215 "MCPError",
216 "MCPInitializationError",
217 "MCPInitializeResult",
218 "MCPJSONRPCRequest",
219 "MCPJSONRPCResponse",
220 "MCPMethodNotFoundError",
221 "MCPModule",
222 "MCPPrompt",
223 "MCPPromptError",
224 "MCPPromptHandlerProtocol",
225 "MCPPromptMessage",
226 "MCPPromptProviderProtocol",
227 "MCPProtocolError",
228 "MCPProvider",
229 "MCPResource",
230 "MCPResourceContent",
231 "MCPResourceError",
232 "MCPResourceHandlerProtocol",
233 "MCPResourceProviderProtocol",
234 "MCPServer",
235 "MCPServerCapabilities",
236 "MCPServerInfo",
237 "MCPServerProtocol",
238 "MCPServerStartedHook",
239 "MCPServerStoppedHook",
240 "MCPToolCallError",
241 "MCPToolDefinition",
242 "MCPToolHandlerProtocol",
243 "MCPToolInvokedHook",
244 "MCPToolProviderProtocol",
245 "MCPTransportProtocol",
246 "ModulePromptProvider",
247 "ModuleResourceProvider",
248 "ModuleToolProvider",
249 "PromptHandler",
250 "ResourceHandler",
251 "SSEClientTransport",
252 "SSETransport",
253 "ServiceToolProvider",
254 "StdioClientTransport",
255 "StdioTransport",
256 "ToolHandler",
257 "ToolRegistryAdapter",
258 "prompt",
259 "resource",
260 "tool",
261]