@@ -598,41 +598,6 @@ pytest # 556 tests
598598pytest --cov # with coverage report
599599```
600600
601- ### Project Structure
602-
603- ```
604- src/apcore_mcp/
605- ├── __init__.py # Public API: APCoreMCP, serve(), to_openai_tools()
606- ├── apcore_mcp.py # APCoreMCP unified entry point class
607- ├── __main__.py # CLI entry point
608- ├── _utils.py # Registry/Executor resolution utilities
609- ├── constants.py # Error codes, registry events, module ID patterns
610- ├── helpers.py # Extension helpers: report_progress(), elicit()
611- ├── adapters/
612- │ ├── schema.py # JSON Schema conversion ($ref inlining)
613- │ ├── annotations.py # Annotation mapping (apcore → MCP/OpenAI)
614- │ ├── approval.py # ElicitationApprovalHandler (MCP ↔ apcore)
615- │ ├── errors.py # Error sanitization with AI guidance fields
616- │ └── id_normalizer.py # Module ID normalization (dot ↔ dash)
617- ├── auth/
618- │ ├── __init__.py # Auth exports
619- │ ├── protocol.py # Authenticator protocol
620- │ ├── jwt.py # JWTAuthenticator with ClaimMapping
621- │ └── middleware.py # ASGI AuthMiddleware + extract_headers()
622- ├── converters/
623- │ └── openai.py # OpenAI tool definition converter
624- ├── explorer/
625- │ ├── __init__.py # create_explorer_mount() entry point
626- │ ├── routes.py # Starlette route handlers
627- │ └── html.py # Self-contained HTML/CSS/JS page
628- └── server/
629- ├── factory.py # MCP Server creation and tool building
630- ├── server.py # MCPServer non-blocking wrapper
631- ├── router.py # Tool call → Executor routing
632- ├── transport.py # Transport management (stdio/HTTP/SSE)
633- └── listener.py # Dynamic module registration listener
634- ```
635-
636601## License
637602
638603Apache-2.0
0 commit comments