Skip to main content
Glama

MCP Codebase Insight

by tosin2013
============================= test session starts ============================== platform darwin -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0 -- /Users/tosinakinosho/workspaces/mcp-codebase-insight/.venv/bin/python3.13 cachedir: .pytest_cache rootdir: /Users/tosinakinosho/workspaces/mcp-codebase-insight configfile: pytest.ini plugins: cov-6.0.0, anyio-4.9.0, asyncio-0.26.0 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=session, asyncio_default_test_loop_scope=function collecting ... collected 106 items tests/components/test_core_components.py::test_adr_manager PASSED [ 0%] tests/components/test_core_components.py::test_knowledge_base PASSED [ 1%] tests/components/test_core_components.py::test_task_manager PASSED [ 2%] tests/components/test_core_components.py::test_metrics_manager PASSED [ 3%] tests/components/test_core_components.py::test_health_manager PASSED [ 4%] tests/components/test_core_components.py::test_cache_manager PASSED [ 5%] tests/components/test_core_components.py::test_documentation_manager PASSED [ 6%] tests/components/test_core_components.py::test_debug_system PASSED [ 7%] tests/components/test_embeddings.py::test_embedder_initialization PASSED [ 8%] tests/components/test_embeddings.py::test_embedder_embedding PASSED [ 9%] tests/components/test_knowledge_base.py::test_knowledge_base_initialization PASSED [ 10%] tests/components/test_knowledge_base.py::test_add_and_get_pattern PASSED [ 11%] tests/components/test_knowledge_base.py::test_find_similar_patterns PASSED [ 12%] tests/components/test_knowledge_base.py::test_update_pattern PASSED [ 13%] tests/components/test_sse_components.py::test_mcp_server_initialization PASSED [ 14%] tests/components/test_sse_components.py::test_register_tools PASSED [ 15%] tests/components/test_sse_components.py::test_get_starlette_app FAILED [ 16%] tests/components/test_sse_components.py::test_create_sse_server FAILED [ 16%] tests/components/test_sse_components.py::test_vector_search_tool PASSED [ 17%] tests/components/test_sse_components.py::test_knowledge_search_tool PASSED [ 18%] tests/components/test_sse_components.py::test_adr_list_tool FAILED [ 19%] tests/components/test_sse_components.py::test_task_status_tool FAILED [ 20%] tests/components/test_sse_components.py::test_sse_handle_connect FAILED [ 21%] =================================== FAILURES =================================== ____________________________ test_get_starlette_app ____________________________ mock_create_sse = <MagicMock name='create_sse_server' id='5349118976'> mcp_server = <src.mcp_codebase_insight.core.sse.MCP_CodebaseInsightServer object at 0x13ed274d0> @patch('mcp_codebase_insight.core.sse.create_sse_server') async def test_get_starlette_app(mock_create_sse, mcp_server): """Test getting the Starlette app for the MCP server.""" # Set up the mock mock_app = MagicMock() mock_create_sse.return_value = mock_app # Reset the cached app to force a new creation mcp_server._starlette_app = None # Get the Starlette app app = mcp_server.get_starlette_app() # Verify tools were registered assert mcp_server.tools_registered is True # Verify create_sse_server was called with the MCP server > mock_create_sse.assert_called_once_with(mcp_server.mcp_server) tests/components/test_sse_components.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <MagicMock name='create_sse_server' id='5349118976'> args = (<mcp.server.fastmcp.server.FastMCP object at 0x13ed24410>,), kwargs = {} msg = "Expected 'create_sse_server' to be called once. Called 0 times." def assert_called_once_with(self, /, *args, **kwargs): """assert that the mock was called exactly once and that that call was with the specified arguments.""" if not self.call_count == 1: msg = ("Expected '%s' to be called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'create_sse_server' to be called once. Called 0 times. /opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:988: AssertionError ---------------------------- Captured stdout setup ----------------------------- {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.688819Z"} ------------------------------ Captured log setup ------------------------------ INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.688819Z"} ----------------------------- Captured stdout call ----------------------------- {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.693189Z"} {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.693272Z"} {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.693321Z"} {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.697672Z"} {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.697772Z"} {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698263Z"} {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698395Z"} {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698465Z"} {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698514Z"} ------------------------------ Captured log call ------------------------------- INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.693189Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.693272Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.693321Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.697672Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.697772Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698263Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698395Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698465Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.698514Z"} ____________________________ test_create_sse_server ____________________________ mock_starlette = <MagicMock name='Starlette' id='5349123680'> mock_transport = <MagicMock name='CodebaseInsightSseTransport' id='5349125024'> @patch('mcp_codebase_insight.core.sse.CodebaseInsightSseTransport') @patch('mcp_codebase_insight.core.sse.Starlette') async def test_create_sse_server(mock_starlette, mock_transport): """Test creating the SSE server.""" # Set up mocks mock_mcp = MagicMock(spec=FastMCP) mock_transport_instance = MagicMock() mock_transport.return_value = mock_transport_instance mock_app = MagicMock() mock_starlette.return_value = mock_app # Create the SSE server app = create_sse_server(mock_mcp) # Verify CodebaseInsightSseTransport was initialized correctly > mock_transport.assert_called_once_with("/sse") tests/components/test_sse_components.py:199: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <MagicMock name='CodebaseInsightSseTransport' id='5349125024'> args = ('/sse',), kwargs = {} msg = "Expected 'CodebaseInsightSseTransport' to be called once. Called 0 times." def assert_called_once_with(self, /, *args, **kwargs): """assert that the mock was called exactly once and that that call was with the specified arguments.""" if not self.call_count == 1: msg = ("Expected '%s' to be called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'CodebaseInsightSseTransport' to be called once. Called 0 times. /opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:988: AssertionError ----------------------------- Captured stdout call ----------------------------- {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754343Z"} {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754481Z"} {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754566Z"} {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754606Z"} {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754640Z"} ------------------------------ Captured log call ------------------------------- INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754343Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754481Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754566Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754606Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.754640Z"} ______________________________ test_adr_list_tool ______________________________ mcp_server = <src.mcp_codebase_insight.core.sse.MCP_CodebaseInsightServer object at 0x13ed7ef90> async def test_adr_list_tool(mcp_server): """Test the ADR list tool.""" # Make sure tools are registered if not mcp_server.tools_registered: mcp_server.register_tools() # Mock the FastMCP add_tool method to capture calls with patch.object(mcp_server.mcp_server, 'add_tool') as mock_add_tool: # Re-register the ADR list tool mcp_server._register_adr() # Verify tool was registered with correct parameters mock_add_tool.assert_called_once() args = mock_add_tool.call_args[0] > assert args[0] == "list-adrs" # Tool name E IndexError: tuple index out of range tests/components/test_sse_components.py:319: IndexError ---------------------------- Captured stdout setup ----------------------------- {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.796820Z"} ------------------------------ Captured log setup ------------------------------ INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.796820Z"} ----------------------------- Captured stdout call ----------------------------- {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.797106Z"} {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.797158Z"} {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.797197Z"} {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.799588Z"} ------------------------------ Captured log call ------------------------------- INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.797106Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.797158Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.797197Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.799588Z"} ____________________________ test_task_status_tool _____________________________ mcp_server = <src.mcp_codebase_insight.core.sse.MCP_CodebaseInsightServer object at 0x13ef72030> async def test_task_status_tool(mcp_server): """Test the task status tool.""" # Make sure tools are registered if not mcp_server.tools_registered: mcp_server.register_tools() # Mock the FastMCP add_tool method to capture calls with patch.object(mcp_server.mcp_server, 'add_tool') as mock_add_tool: # Re-register the task status tool mcp_server._register_task() # Verify tool was registered with correct parameters mock_add_tool.assert_called_once() args = mock_add_tool.call_args[0] > assert args[0] == "get-task-status" # Tool name E IndexError: tuple index out of range tests/components/test_sse_components.py:338: IndexError ---------------------------- Captured stdout setup ----------------------------- {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.806759Z"} ------------------------------ Captured log setup ------------------------------ INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP Codebase Insight server initialized", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.806759Z"} ----------------------------- Captured stdout call ----------------------------- {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.807096Z"} {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.807156Z"} {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.807197Z"} {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.810043Z"} ------------------------------ Captured log call ------------------------------- INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Registering tools with MCP server", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.807096Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Some critical dependencies are not available: task_manager", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.807156Z"} WARNING src.mcp_codebase_insight.core.sse:logger.py:75 {"event": "Tools requiring these dependencies will not be registered", "logger": "src.mcp_codebase_insight.core.sse", "level": "warning", "timestamp": "2025-04-18T06:51:43.807197Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "MCP tools registration completed", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.810043Z"} ___________________________ test_sse_handle_connect ____________________________ mock_starlette = <MagicMock name='Starlette' id='5349128384'> mock_transport = <MagicMock name='SseServerTransport' id='5349128720'> @patch('mcp_codebase_insight.core.sse.SseServerTransport') @patch('mcp_codebase_insight.core.sse.Starlette') async def test_sse_handle_connect(mock_starlette, mock_transport): """Test the SSE connection handling functionality.""" # Set up mocks mock_transport_instance = MagicMock() mock_transport.return_value = mock_transport_instance mock_mcp = MagicMock(spec=FastMCP) # For MCP v1.5.0, create a mock run method instead of initialization options mock_mcp.run = AsyncMock() mock_request = MagicMock() mock_request.client = "127.0.0.1" mock_request.scope = {"type": "http"} # Mock the transport's connect_sse method mock_streams = (AsyncMock(), AsyncMock()) mock_cm = MagicMock() mock_cm.__aenter__ = AsyncMock(return_value=mock_streams) mock_cm.__aexit__ = AsyncMock() mock_transport_instance.connect_sse.return_value = mock_cm # Create a mock handler and add it to our mock app instance handle_sse = AsyncMock() mock_app = MagicMock() mock_starlette.return_value = mock_app # Set up a mock route that we can access mock_route = MagicMock() mock_route.path = "/sse/" mock_route.endpoint = handle_sse mock_app.routes = [mock_route] # Create the SSE server app = create_sse_server(mock_mcp) # Extract the actual handler from the route configuration > routes_kwarg = mock_starlette.call_args.kwargs.get('routes', []) E AttributeError: 'NoneType' object has no attribute 'kwargs' tests/components/test_sse_components.py:381: AttributeError ----------------------------- Captured stdout call ----------------------------- {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817486Z"} {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817591Z"} {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817674Z"} {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817714Z"} {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817749Z"} ------------------------------ Captured log call ------------------------------- INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Initializing SSE transport with endpoint: /sse", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817486Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Created SSE server with routes:", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817591Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /health, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817674Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /sse, methods: {'HEAD', 'GET'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817714Z"} INFO src.mcp_codebase_insight.core.sse:logger.py:68 {"event": "Route: /message, methods: {'POST'}", "logger": "src.mcp_codebase_insight.core.sse", "level": "info", "timestamp": "2025-04-18T06:51:43.817749Z"} --------------------------- Captured stdout teardown --------------------------- Cleaning up test collection: test_collection_a41f92f0 HTTP Request: DELETE http://localhost:6333/collections/test_collection_a41f92f0 "HTTP/1.1 200 OK" Found 0 server states at end of session ---------------------------- Captured log teardown ----------------------------- INFO conftest:conftest.py:169 Cleaning up test collection: test_collection_a41f92f0 INFO httpx:_client.py:1025 HTTP Request: DELETE http://localhost:6333/collections/test_collection_a41f92f0 "HTTP/1.1 200 OK" INFO conftest:conftest.py:530 Found 0 server states at end of session ---------- coverage: platform darwin, python 3.13.2-final-0 ---------- Name Stmts Miss Branch BrPart Cover Missing ----------------------------------------------------------------------------------------------- src/mcp_codebase_insight/__init__.py 3 0 0 0 100% src/mcp_codebase_insight/__main__.py 28 28 0 0 0% 3-76 src/mcp_codebase_insight/asgi.py 5 5 0 0 0% 3-11 src/mcp_codebase_insight/core/__init__.py 2 0 0 0 100% src/mcp_codebase_insight/core/adr.py 127 50 26 5 54% 75-111, 118-134, 186, 202, 204->206, 207, 209, 220-227 src/mcp_codebase_insight/core/cache.py 168 42 68 26 68% 33, 36, 42->exit, 70-71, 77-78, 90, 97->exit, 102-103, 109, 124-125, 142-143, 160-161, 167-169, 173-176, 181, 187, 193, 199, 205, 217, 220, 225, 228->exit, 234, 236->238, 238->exit, 243-249, 254, 258, 261->265, 265->270, 267-268, 274 src/mcp_codebase_insight/core/component_status.py 8 0 0 0 100% src/mcp_codebase_insight/core/config.py 63 23 14 4 60% 38, 44-45, 47-51, 64-67, 91-105, 109, 117, 121-122 src/mcp_codebase_insight/core/debug.py 122 69 34 0 34% 58-78, 82-97, 122-128, 138-153, 161-168, 172-205 src/mcp_codebase_insight/core/di.py 99 62 14 0 33% 40, 53-76, 80-82, 86-97, 101-106, 110-112, 116-120, 124-132, 136-144, 148-156, 160-169 src/mcp_codebase_insight/core/documentation.py 165 111 52 1 25% 53-77, 84-100, 134, 150-167, 175-189, 201-214, 228-316 src/mcp_codebase_insight/core/embeddings.py 77 28 18 3 61% 29->exit, 48-58, 79-83, 88, 104-106, 114-128, 132 src/mcp_codebase_insight/core/errors.py 96 27 2 0 70% 55-58, 62, 77, 88, 99, 110, 121, 132, 143, 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275, 279-282 src/mcp_codebase_insight/core/health.py 140 58 26 8 54% 52-71, 75-98, 111, 113, 128, 146, 156-162, 168->178, 170-171, 180-181, 190-191, 215-216, 232-233, 235-236, 259-260, 262-263 src/mcp_codebase_insight/core/knowledge.py 253 100 74 25 55% 95, 105->109, 114, 119-124, 129->exit, 131-138, 143->exit, 145-151, 155, 167, 170->175, 172-173, 208->223, 230, 250, 252->254, 254->256, 257, 258->260, 261, 263, 265, 270->285, 298, 303, 305, 307, 320->318, 335-351, 361-379, 404-421, 432-445, 457-470, 479-488, 496-503, 507-514, 518-524 src/mcp_codebase_insight/core/metrics.py 108 41 38 11 58% 43, 47, 58-59, 62-65, 70, 74, 80-83, 89-100, 111, 122, 127-128, 138, 145, 151, 153, 165-183 src/mcp_codebase_insight/core/prompts.py 72 72 16 0 0% 3-262 src/mcp_codebase_insight/core/sse.py 220 116 40 9 46% 29-37, 62-108, 130-141, 153-154, 162, 171-178, 186-188, 202-207, 239, 280-285, 293, 302-303, 315->321, 330-331, 338-339, 343-344, 349-380, 393-394, 398-419, 432-433, 437-458, 471-472, 476-483, 502->504 src/mcp_codebase_insight/core/state.py 168 120 54 0 22% 48-53, 63-77, 84-93, 97-98, 102, 106-144, 148, 161-162, 167, 171, 175, 179, 183-335 src/mcp_codebase_insight/core/task_tracker.py 48 28 12 0 33% 29-37, 45-52, 60-78, 86, 94, 102, 106-107 src/mcp_codebase_insight/core/tasks.py 259 172 74 1 26% 89-113, 117-134, 138-140, 144-162, 203, 217-233, 237-245, 254-264, 268-318, 323-341, 349-357, 363-377, 384-397, 404-415, 422-432, 439-462 src/mcp_codebase_insight/core/vector_store.py 177 73 26 5 58% 62->67, 78->93, 84-90, 99-100, 119-122, 127-129, 145-146, 158-159, 164-165, 170-184, 200-201, 233-235, 264-266, 270, 290, 327-393, 411 src/mcp_codebase_insight/models.py 18 0 0 0 100% src/mcp_codebase_insight/server.py 630 536 128 0 12% 55-109, 121-138, 142-1491, 1549-1550, 1554-1561, 1585-1590, 1595, 1599-1616, 1620-1622, 1626, 1638-1664, 1668-1688 src/mcp_codebase_insight/server_test_isolation.py 48 38 18 0 15% 31-39, 44-99 src/mcp_codebase_insight/utils/__init__.py 2 0 0 0 100% src/mcp_codebase_insight/utils/logger.py 29 5 0 0 83% 52-53, 82, 89, 97 src/mcp_codebase_insight/version.py 14 14 2 0 0% 3-22 ----------------------------------------------------------------------------------------------- TOTAL 3149 1818 736 98 38% =========================== short test summary info ============================ FAILED tests/components/test_sse_components.py::test_get_starlette_app - AssertionError: Expected 'create_sse_server' to be called once. Called 0 times. FAILED tests/components/test_sse_components.py::test_create_sse_server - AssertionError: Expected 'CodebaseInsightSseTransport' to be called once. Called 0 times. FAILED tests/components/test_sse_components.py::test_adr_list_tool - IndexError: tuple index out of range FAILED tests/components/test_sse_components.py::test_task_status_tool - IndexError: tuple index out of range FAILED tests/components/test_sse_components.py::test_sse_handle_connect - AttributeError: 'NoneType' object has no attribute 'kwargs' !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 5 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! ================== 5 failed, 18 passed, 34 warnings in 7.50s ===================

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tosin2013/mcp-codebase-insight'

If you have feedback or need assistance with the MCP directory API, please join our Discord server