
Lineai Mcp Server
io.github.lineai-intelligencePublished by GitHub account lineai-intelligencev1.4.0Updated Oct 24, 2026
An MCP Server to utilize Lineai's rich software dependency data in your AI programming assistant.
Overview
Lineai MCP server that lets an AI coding assistant query Lineai's software dependency graph for code and database impact analysis.
- What you can do
- Assess the impact of changing a method or class, with a bounded upstream traversal and a scope note saying whether the result is complete or partial
- Analyze impacts between code and database entities such as columns, tables and views
- Search the dependency graph by text or identity prefix, and discover supported relationship types and limits
- Traverse dependencies from seed nodes in upstream, downstream or both directions, and explain the shortest path between two nodes
- Validate a proposed change scope with a heuristic risk checklist, and resolve node owners
- When to use it
- Useful when an assistant edits an existing Java, JavaScript, TypeScript or C# codebase and you want it to check what else depends on the code or database entity before changing it. It fits teams already running a Lineai server with their code scanned into a workspace.
- Requirements
- Runs locally as a Python package launched with Astral uv/uvx, so uv must be installed. Needs a reachable Lineai server URL (LINEAI_SERVER_HOST), a username (LINEAI_USERNAME), a password (LINEAI_PASSWORD) and a workspace name (LINEAI_WORKSPACE_NAME). Version 0.4.0 and above requires Lineai API 25.10.0 or later; graph tools need graph endpoints deployed on the server.
Installation
In SourceWeft
- Open Lineai Mcp Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
lineai-mcp-server
An MCP Server to utilize Lineai's rich software dependency data in your AI programming assistant.
Documentation
Code-derived architecture documentation lives in docs/ (added in
LIN-737; updated for the LIN-699 changes — PR #61 / neo4cape #1860):
- docs/architecture.md — full architecture analysis: module map, tool surface and the Lineai
/api/...endpoints each tool calls, auth flow, caching, error-handling taxonomy, configuration, packaging/release, and findings. - docs/architecture-diagrams.md — Mermaid diagram set (ecosystem, module map, call sequence, auth/caching, error taxonomy).
- docs/rendered-diagrams/ — committed SVG renders of every diagram.
Components
Tools
The server implements eight tools: two impact tools plus six graph tools backed by the Lineai graph HTTP API.
Code Analysis Tools
- lineai-method-impact: Pulls an impact assessment from the Lineai server's APIs for your code.
- Takes the given "method" that you're working on. Pass the fully-qualified class name in "class" (e.g.
com.acme.shell.AnalyzeCommands) when the simple name may exist in several repositories: a fully-qualified class selects exactly that class, while a simple name that matches several classes returns an ambiguity page listing the candidates instead of silently analyzing another repository's class. - The impact is a bounded upstream traversal from the Lineai graph impact endpoint (
depthargument, default 3, max 10). The report's Impact scope section says where the data came from (graph, or the legacy full-chain endpoint when the graph endpoint is not deployed) and whether it is complete (ok) or a lower bound (partial) — a partial result is never "no impact".
- Takes the given "method" that you're working on. Pass the fully-qualified class name in "class" (e.g.
- lineai-database-impact: Analyzes impacts between code and database entities.
- Takes the database entity type (column, table, or view) and its name.
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).
- lineai-graph-capabilities:
GET— discover supported relationship types, limits, and flags for the workspace materialized view (materializedViewIdresolved like every other tool: explicit id →workspaceargument →LINEAI_WORKSPACE_NAME→ server default). - lineai-graph-search: Search nodes by text
query/qand/oridentity_prefix; optionalscan_space(scan space id or display name),prefer_latest_scan,limit. Results are ranked by the server (exact short name → exact fully-qualified name → class-like labels → text score → newest scan) anddata.hits[i]describesdata.nodes[i](score,matchKind,labelTier);data.totalHitCountis the real total, so a full page means "narrow the query", not "absent". - lineai-graph-impact: Bounded dependency / blast-radius traversal from
seed_node_idswithdirection(upstream= what depends on the seeds,downstream,both) anddepth(server default 3, max 10). The response carriesstatus(ok|partial),truncated,nodeCount,staticAnalysisGapandassumptionsAppliedmarkers; the tool prints a note above the JSON whenever the result is partial, degraded, or an older server ignored an option. - lineai-graph-path-explain: Shortest-path style explanation between
from_node_idandto_node_id. - lineai-graph-validate-change-scope: Heuristic checklist / risk summary for a proposed change given seed nodes and
proposed_change_summary. - lineai-graph-owners: Resolve a node by
node_idoridentity_prefixand 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.
Install
Pre Requisites
The MCP server relies upon Astral UV to run, please install
MacOS Workaround for uvx
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
This appears to be a problem with Astral uvx running on MacOS. The following can be used as a workaround:
- Clone this project locally.
- Configure your
mcp.jsonto useuvinstead ofuvx. For example:
- Restart Cursor.
- Ensure the Cursor Global Rule for Lineai is in place.
- Open the MCP tab in Cursor and refresh the
lineai-mcp-server. - Ask Cursor to make a code change in an existing class. The MCP server should now run the impact analysis successfully.
Configuration for Different IDEs
Visual Studio Code Configuration
To configure this MCP server in VS Code:
-
First, ensure you have GitHub Copilot agent mode enabled in VS Code.
-
Create a
.vscode/mcp.jsonfile in your workspace with the following configuration:
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.
-
Alternatively, you can run the
MCP: Add Servercommand from the Command Palette and provide the server information. -
To manage your MCP servers, use the
MCP: List Serverscommand from the Command Palette. -
Once configured, the server's tools will be available to Copilot agent mode. You can toggle specific tools on/off as needed by clicking the Tools button in the Chat view when in agent mode.
-
To use the Lineai tools in agent mode, you can specifically ask about code impacts or database relationships, and the agent will utilize the appropriate tools.
Claude Desktop Configuration
Configure Claude Desktop by editing the configuration file:
- On MacOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - On Windows:
%APPDATA%/Claude/claude_desktop_config.json - On Linux:
~/.config/Claude/claude_desktop_config.json
Add the following to your configuration file:
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.
Windsurf IDE Configuration
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:
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.
Cursor Configuration
To configure the Lineai MCP server in Cursor:
- Configure the MCP server by creating a
.cursor/mcp.jsonfile:
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.
- Restart Cursor to apply the changes.
The Lineai MCP server tools will now be available in your Cursor workspace.
AI Assistant Instructions/Rules
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.
VS Code (GitHub Copilot) Instructions
Create a .vscode/copilot-instructions.md file with the following content:
Claude Desktop Instructions
Create a file ~/.claude/instructions.md with the following content:
Windsurf IDE Rules
Create or modify the ~/.codeium/windsurf/memories/global_rules.md markdown file with the following content:
Cursor Global Rule
To configure Lineai rules in Cursor:
- Open Cursor Settings
- Navigate to the "Rules" section
- Add the following content to "User Rules":
Environment Variables
The 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 withworkspace/materialized_view_idarguments, and when nothing is specified at all the server's default workspace's latest materialized view is used.LINEAI_DEBUG_MODE: Set totrueto enable debug mode. When enabled, additional debug files such astiming_log.txtandimpact_data*.jsonwill be generated. Defaults tofalse.
Tuning (optional — read once at server startup)
LINEAI_TOKEN_CACHE_TTL: Authentication-token cache lifetime in seconds. Defaults to3600.LINEAI_METHOD_CACHE_TTL: Method shortname-search result cache lifetime in seconds. Defaults to300.LINEAI_IMPACT_CACHE_TTL: Impact-analysis result cache lifetime in seconds. Defaults to300.LINEAI_MV_CACHE_TTL: Materialized-view resolution cache lifetime in seconds (workspace name / server default → view id). Defaults to300.LINEAI_REQUEST_TIMEOUT: Overall HTTP request timeout in seconds for all Lineai API calls. Defaults to120.0. Graph impact calls are bounded server-side (depth / node / relationship caps, 60 s query timeout), so a timeout here usually means the depth is too large — retry withdepth1–2.LINEAI_CONNECT_TIMEOUT: HTTP connect timeout in seconds. Defaults to30.0.LINEAI_METHOD_IMPACT_BACKEND:graph(default) fetches thelineai-method-impactsubgraph from the bounded graph impact endpoint and falls back to the legacy/api/dependency/impact/fulllist only when the graph route is missing (a 404 without neo4cape's entity message); a 404 that names the node ("Unable to locate node …") is reported as a search/view disagreement instead, because the legacy traversal from an unknown id returns an empty result that would read as "isolated";legacyforces the legacy endpoint (unbounded full incoming chain). Read per call.
Tests only
LINEAI_TEST_MODE: When set (any value), the server skips loading a.envfile so tests fully control the environment.LINEAI_GRAPH_E2E_REQUIRED: Set to1when 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.
Example Configuration
Pinning the version
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.
Version Compatibility
This MCP server has the following version compatibility requirements:
- Version 0.3.1 and below: Compatible with all Lineai API versions
- Version 0.4.0 and above: Requires Lineai API version 25.10.0 or greater
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.
Ranked search / bounded impact (LIN-870): ranking, hits, the real totalHitCount, scan_space / prefer_latest_scan, and the depth / direction / status: partial impact contract need a Lineai server that includes neo4cape LIN-870. Against an older server the tools still work: search comes back in the server's unranked order, impact runs the full subgraph, and the ignored options are echoed as *_not_implemented / *_reserved_* markers that the tool renders as "x was ignored (older server)". lineai-method-impact falls back to the legacy impact endpoint automatically when the graph endpoint is missing.
Debug Logging
When LINEAI_DEBUG_MODE=true, debug files are written to the system temporary directory:
- Windows:
%TEMP%\lineai-mcp-server(typicallyC:\Users\{username}\AppData\Local\Temp\lineai-mcp-server) - macOS:
/tmp/lineai-mcp-server(or$TMPDIR/lineai-mcp-serverif set) - Linux:
/tmp/lineai-mcp-server(or$TMPDIR/lineai-mcp-serverif set)
Debug files include:
timing_log.txt- Performance timing informationimpact_data_*.json- Raw impact analysis data for troubleshooting
Finding your log directory:
Testing
Running Unit Tests
The project uses unittest for testing. You can run unit tests without any external dependencies:
Unit tests use mock data and don't require a connection to a Lineai server. test/unit_test_handlers.py includes the TestMethodNodeSelection table (the LIN-870 AnalyzeCommands-in-three-repositories case: fully-qualified class → the right repository, simple name → ambiguity page, foreign fully-qualified name → not-found page, unresolved references never chosen) and the graph-backend / legacy-fallback / partial-result handler cases; test/unit_test_graph_tools.py covers the partiality note and old-server markers.
Integration Tests (Optional)
If you want to run integration tests that connect to a real Lineai server:
- Copy
test/.env.test.exampletotest/.env.testand populate with your Lineai server details - Run the integration tests:
Note: Integration tests require access to a Lineai server instance.
Graph MCP end-to-end tests
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).
- If the host does not expose graph routes, tests skip by default.
- Set
LINEAI_GRAPH_E2E_REQUIRED=1to turn missing graph APIs into hard failures (useful in CI when graph must be present).
From the repo root:
Equivalent:
Validation for Official MCP Registry
mcp-name: io.github.lineai-intelligence/lineai-mcp-server
Source: README.md at commit 9c6facf
Tools
0Version history
2- v1.4.0LatestOct 13, 2026
- v1.3.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts