about-codebase — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited about-codebase (Rules) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP Server to utilize Lineai's rich software dependency data in your AI programming assistant.
Code-derived architecture documentation lives in docs/ (added in LIN-737; updated for the LIN-699 changes — PR #61 / neo4cape #1860):
/api/... endpoints each tool calls, auth flow, caching, error-handling taxonomy, configuration, packaging/release, and findings.The server implements eight tools: two impact tools plus six graph tools backed by the Lineai graph HTTP API.
#### Code Analysis Tools
All eight tools also accept optional workspace and materialized_view_id arguments to scope a single call; when neither is given (and LINEAI_WORKSPACE_NAME is unset) the server's default workspace's latest materialized view is used automatically.
#### Graph API tools
These call POST / GET endpoints under /api/ai-retrieval/graph/ on the same host as LINEAI_SERVER_HOST, using the same session auth as other MCP tools. If graph routes are not deployed, the server returns a clear “graph not available” style message (often after HTTP 404).
GET — discover supported relationship types, limits, and flags for the workspace materialized view (materializedViewId resolved like every other tool: explicit id → workspace argument → LINEAI_WORKSPACE_NAME → server default).query / q and/or identity_prefix; optional scan_space, limit, etc.seed_node_ids.from_node_id and to_node_id.proposed_change_summary.node_id or identity_prefix and surface property fields whose names contain "owner".Tool arguments accept snake_case aliases (for example materialized_view_id, seed_node_ids) where noted in the MCP schema; request bodies sent to Lineai use camelCase JSON keys.
#### Pre Requisites
The MCP server relies upon Astral UV to run, please install
There is a known issue with uvx on MacOS where the Lineai MCP server may fail to launch in certain IDEs (such as Cursor), resulting in errors like: See issue #11
Failed to connect client closedThis appears to be a problem with Astral uvx running on MacOS. The following can be used as a workaround:
mcp.json to use uv instead of uvx. For example:{
"mcpServers": {
"lineai-mcp-server": {
"type": "stdio",
"command": "<PATH_TO_UV>/uv",
"args": [
"--directory",
"<PATH_TO_THIS_REPO>/lineai-mcp-server-main",
"run",
"lineai-mcp-server"
],
"env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>",
"LINEAI_DEBUG_MODE": "true"
}
}
}
}lineai-mcp-server.To configure this MCP server in VS Code:
.vscode/mcp.json file in your workspace with the following configuration:{
"servers": {
"lineai-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"lineai-mcp-server@latest"
],
"env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>",
"LINEAI_DEBUG_MODE": "true"
}
}
}
}Note: On some systems, you may need to use the full path to the uvx executable instead of just "uvx". For example:/home/user/.local/bin/uvxon Linux/Mac orC:\Users\username\AppData\Local\astral\uvx.exeon Windows.
MCP: Add Server command from the Command Palette and provide the server information.MCP: List Servers command from the Command Palette.Configure Claude Desktop by editing the configuration file:
~/Library/Application\ Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonAdd the following to your configuration file:
"mcpServers": {
"lineai-mcp-server": {
"command": "uvx",
"args": [
"lineai-mcp-server@latest"
],
"env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>"
}
}
}Note: On some systems, you may need to use the full path to the uvx executable instead of just "uvx". For example:/home/user/.local/bin/uvxon Linux/Mac orC:\Users\username\AppData\Local\astral\uvx.exeon Windows.
After adding the configuration, restart Claude Desktop to apply the changes.
To run this MCP server with Windsurf IDE:
Configure Windsurf IDE:
To configure Windsurf IDE, you need to create or modify the ~/.codeium/windsurf/mcp_config.json configuration file.
Add the following configuration to your file:
"mcpServers": {
"lineai-mcp-server": {
"command": "uvx",
"args": [
"lineai-mcp-server@latest"
],
"env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>"
}
}
}Note: On some systems, you may need to use the full path to the uvx executable instead of just "uvx". For example:/home/user/.local/bin/uvxon Linux/Mac orC:\Users\username\AppData\Local\astral\uvx.exeon Windows.
After adding the configuration, restart Windsurf IDE or refresh the tools to apply the changes.
To configure the Lineai MCP server in Cursor:
.cursor/mcp.json file:{
"mcpServers": {
"lineai-mcp-server": {
"command": "uvx",
"args": [
"lineai-mcp-server@latest"
],
"env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>",
"LINEAI_DEBUG_MODE": "true"
}
}
}
}Note: On some systems, you may need to use the full path to the uvx executable instead of just "uvx". For example:/home/user/.local/bin/uvxon Linux/Mac orC:\Users\username\AppData\Local\astral\uvx.exeon Windows.
The Lineai MCP server tools will now be available in your Cursor workspace.
To help the AI assistant use the Lineai tools effectively, you can add the following instructions/rules to your client's configuration. We recommend customizing these instructions to align with your team's specific coding standards, best practices, and workflow requirements:
When the graph API is available on your Lineai host, extend your rules with the same guidance the server already advertises in its MCP instructions: use *`lineai-graph-` tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; if graph calls fail with “not available”, fall back to lineai-method-impact / lineai-database-impact**.
Create a .vscode/copilot-instructions.md file with the following content:
# Lineai MCP Server Instructions
When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods
When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities
To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impactsCreate a file ~/.claude/instructions.md with the following content:
# Lineai MCP Server Instructions
When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods
When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities
To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impactsCreate or modify the ~/.codeium/windsurf/memories/global_rules.md markdown file with the following content:
When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods
When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities
To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- For graph discovery: Prefer lineai-graph-* tools when available
- Review the impact results before making changes
- Consider both direct and indirect impactsTo configure Lineai rules in Cursor:
# Lineai MCP Server Rules
## Codebase
- The Lineai MCP Server is for java, javascript, typescript, and C# dotnet codebases
- don't run the tools on python or other non supported codebases
## AI Assistant Behavior
- When modifying existing code methods:
- Use lineai-method-impact to analyze code changes
- Use lineai-database-impact for database modifications
- When the Lineai graph API is available, use lineai-graph-* tools (search, impact, path-explain, validate-change-scope, owners, capabilities) for bounded graph discovery; otherwise rely on method/database impact tools
- Highlight impact results for the modified methods
- When modifying SQL code or database entities:
- Always use lineai-database-impact to analyze potential impacts
- Highlight impact results for the modified database entities
- To use the Lineai tools effectively:
- For code impacts: Ask about specific methods or functions
- For database relationships: Ask about tables, views, or columns
- Review the impact results before making changes
- Consider both direct and indirect impactsThe following environment variables can be configured to customize the behavior of the server:
LINEAI_SERVER_HOST: The URL of the Lineai server (required). All API paths (/api/authenticate, /api/ai-retrieval/..., /api/dependency/..., /api/materialized-view...) are appended to it.LINEAI_USERNAME: Your Lineai username (required).LINEAI_PASSWORD: Your Lineai password (required).LINEAI_WORKSPACE_NAME: The default workspace to use. Optional: individual tool calls can override it with workspace / materialized_view_id arguments, and when nothing is specified at all the server's default workspace's latest materialized view is used.LINEAI_DEBUG_MODE: Set to true to enable debug mode. When enabled, additional debug files such as timing_log.txt and impact_data*.json will be generated. Defaults to false.Tuning (optional — read once at server startup)
LINEAI_TOKEN_CACHE_TTL: Authentication-token cache lifetime in seconds. Defaults to 3600.LINEAI_METHOD_CACHE_TTL: Method shortname-search result cache lifetime in seconds. Defaults to 300.LINEAI_IMPACT_CACHE_TTL: Impact-analysis result cache lifetime in seconds. Defaults to 300.LINEAI_MV_CACHE_TTL: Materialized-view resolution cache lifetime in seconds (workspace name / server default → view id). Defaults to 300.LINEAI_REQUEST_TIMEOUT: Overall HTTP request timeout in seconds for all Lineai API calls. Defaults to 120.0.LINEAI_CONNECT_TIMEOUT: HTTP connect timeout in seconds. Defaults to 30.0.Tests only
LINEAI_TEST_MODE: When set (any value), the server skips loading a .env file so tests fully control the environment.LINEAI_GRAPH_E2E_REQUIRED: Set to 1 when running graph MCP integration tests if you want missing graph APIs (HTTP 404 / “Graph API not available”) to fail the suite instead of skipping those tests."env": {
"LINEAI_SERVER_HOST": "<url to the server e.g. https://myco.app.lineai.net>",
"LINEAI_USERNAME": "<my username>",
"LINEAI_PASSWORD": "<my password>",
"LINEAI_WORKSPACE_NAME": "<my workspace>",
"LINEAI_DEBUG_MODE": "true"
}instead of using the latest version of the server, you can pin to a specific version by changing the args field to match the version in pypi e.g.
"args": [
"[email protected]"
],This MCP server has the following version compatibility requirements:
If you're upgrading, make sure your Lineai server meets the minimum API version requirement.
Graph tools: Require your Lineai deployment to serve the graph endpoints under /api/ai-retrieval/graph/. Older or partial deployments may return 404; the MCP tools surface that as a clear error instead of opaque failures.
When LINEAI_DEBUG_MODE=true, debug files are written to the system temporary directory:
%TEMP%\lineai-mcp-server (typically C:\Users\{username}\AppData\Local\Temp\lineai-mcp-server)/tmp/lineai-mcp-server (or $TMPDIR/lineai-mcp-server if set)/tmp/lineai-mcp-server (or $TMPDIR/lineai-mcp-server if set)Debug files include:
timing_log.txt - Performance timing informationimpact_data_*.json - Raw impact analysis data for troubleshootingFinding your log directory:
import tempfile
import os
print("Log directory:", os.path.join(tempfile.gettempdir(), "lineai-mcp-server"))The project uses unittest for testing. You can run unit tests without any external dependencies:
python -m unittest discover -s test -p "unit_*.py"Unit tests use mock data and don't require a connection to a Lineai server.
If you want to run integration tests that connect to a real Lineai server:
test/.env.test.example to test/.env.test and populate with your Lineai server detailspython -m unittest discover -s test -p "integration_*.py"Note: Integration tests require access to a Lineai server instance.
test/integration_test_graph.py drives the real MCP handler path (handle_call_tool) for `lineai-graph-capabilities` and a chained flow (search → impact → path → validate → owners) against LINEAI_SERVER_HOST. Configure credentials the same way as other integration tests (test/.env.test from test/.env.test.example).
From the repo root:
./scripts/run_graph_e2e.shEquivalent:
uv run python -m unittest test.integration_test_graph -vmcp-name: io.github.lineai-intelligence/lineai-mcp-server
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.