gephi-ai
Extends Gephi with AI capabilities. Includes a Gephi plugin for graph analytics, an MCP server bridging AI assistants and Gephi, an agentic AI plugin with slash commands and workflow skills, and a specialized agent for network analysis research. Built for researchers working across network science and AI.
Gephi AI
Control Gephi by talking to your AI assistant. Build, analyze, style, and export publication-ready network maps through the Model Context Protocol (MCP).
Built for researchers working across network science and AI.
Status: public beta. APIs may change between minor versions.
What you get
Your AI assistant drives Gephi. Say what you want in plain language and the assistant builds, analyzes, styles, and exports the map.
It is a conversation, not a command line. The assistant explains what it is doing, checks its own maps before showing them, and teaches you to read what you see. You can point back: select nodes in Gephi and ask "what did I select?"
Any data, any MCP client. Network files import directly, and spreadsheets and other data become networks conversationally. Works with Claude Code, Claude Desktop, OpenAI Codex, Gemini CLI, or any MCP client.
Full feature list- 120 tools covering the whole workflow: build, analyze, style, lay out, filter, and export
- One-level undo: destructive operations snapshot the workspace first, so
gephi_undobrings the graph back - Measured layout quality: the graph profile flags heavy-tailed weights and hub-and-spoke wiring before a layout runs, visual QA scores how well communities separate, and numerically exploded layouts are caught instead of exported
- Interactive network view inside the chat (pan, zoom, hover, and click a node to ask about it)
- Slash commands for common jobs:
/analyze-network,/community-detection,/centrality,/visualize,/export-map,/import-and-explore,/explore,/verify-claim,/text-network,/teach, and/counterfactual - Specialized agents for claim verification, layout iteration, structural analysis, and text networks
- Two extra layouts beyond Gephi's own: by role in the network, and by community
- Reads your selection in the Gephi window
- Drives any layout or metric plugin installed from the Gephi plugin portal
- Imports GEXF, GraphML, GML, CSV, DOT, and Pajek
Install
You need Gephi Desktop 0.11.3 or newer and an AI assistant. Most clients also need uv, which runs the server and manages Python for you; Claude Desktop brings its own.
1. Add the plugin to Gephi
- Download
gephi-ai-1.5.1.nbmfrom the Releases page. - In Gephi, open Tools > Plugins > Downloaded > Add Plugins, select the file, and click Install.
- Restart Gephi. Tools > Gephi AI Server shows that the plugin is running.
2. Connect your assistant
Use one connection method per app. Two at once means two servers and every tool listed twice.
Claude Code (recommended: adds the slash commands, agents, and skills):
claude plugin marketplace add MattArtzAnthro/gephi-ai
claude plugin install gephi-network-analysis@gephi-ai
Claude Desktop: download gephi-ai-<version>.mcpb from the Releases page and double-click it. Claude Desktop installs Python, the server, and its dependencies itself. The first launch needs an internet connection and can take a minute. Tested with Claude Desktop 1.40609.0.
OpenAI Codex (adds the same workflows as skills):
codex plugin marketplace add MattArtzAnthro/gephi-ai --ref main
codex plugin add gephi-network-analysis@gephi-ai
Start a new Codex task after installing.
Gemini CLI:
gemini mcp add -s user gephi-ai uvx gephi-ai
Any other MCP client: run uvx gephi-ai over stdio.
claude mcp add gephi-ai -- uvx gephi-ai
codex mcp add gephi-ai -- uvx gephi-ai
Claude Desktop through its config file (claude_desktop_config.json):
{
"mcpServers": {
"gephi-ai": {
"command": "uvx",
"args": ["gephi-ai"]
}
}
}
Network-analysis guidance for other agentsCopy the skill folder into your agent's skills directory:
git clone https://github.com/MattArtzAnthro/gephi-ai.git
cp -r gephi-ai/plugins/claude-code/skills/gephi ~/.codex/skills/
| Agent | Skills directory |
|---|---|
| OpenAI Codex | ~/.codex/skills/ (or install the Codex plugin above) |
| Cursor | ~/.cursor/skills/ |
| GitHub Copilot / VS Code | ~/.copilot/skills/ |
| Any agent, per project | .agents/skills/ in your repository |
The repository also carries AGENTS.md and GEMINI.md, which those agents read on their own.
3. Check that it works
With Gephi open, ask your assistant: "Check if Gephi is running." It should call gephi_health_check and confirm the connection, including whether your plugin and server are up to date.
Updating
The health check tells you once per session when something is out of date.
- Claude Code:
claude plugin update gephi-network-analysis@gephi-ai, then start a new session. - Claude Desktop bundle: download the newest
.mcpbfrom Releases and double-click it. - Config file or
uvxsetups: nothing to do;uvxfetches the latest release when the app restarts. - Gephi plugin: install the newest
.nbmthrough Tools > Plugins > Downloaded and restart Gephi.
- From plugin 1.2.x (one time): the plugin was renamed to Gephi AI, so the new version installs alongside the old one and both try to use port 8080. In Tools > Plugins > Installed, uninstall Gephi AI (MCP), restart Gephi, then install the new
.nbm. - From the
gephi-mcppackage: the server is now published asgephi-ai. If your config saysuvx gephi-mcp, change it touvx gephi-aito keep getting updates. - From the
gephi-mcpserver name: the setup commands and the Claude plugin now name the servergephi-ai, so its tools show asmcp__gephi-ai__gephi_*(mcp__plugin_gephi-network-analysis_gephi-ai__gephi_*from the plugin). A server you registered by hand asgephi-mcpkeeps working under that name; re-register it asgephi-aito match, and re-approve the tools once. - Cowork keeps its own copy of plugins. Ask Cowork to update gephi-network-analysis, then fully quit and reopen the app.
Troubleshooting
- "Executable not found in $PATH": the app cannot find
uvxorgephi-ai. Install withuvxorpipxrather than inside a project virtual environment, or point your config at the executable's full path. - Every tool appears twice: two connection methods are active. Remove one (bundle: Settings > Extensions; config file: delete the
gephi-aiblock, orgephi-mcpin an older setup). - "Graph is busy" keeps appearing: fully quit and reopen Gephi.
- Reporting a bug: attach Gephi's log (
messages.login Gephi's user folder, undervar/log; on macOS~/Library/Application Support/gephi/0.11/var/log/). From plugin 1.5.2, a request that fails inside Gephi records its stack trace there. - Opening
http://127.0.0.1:8080in a browser returns403: this is intended. The API refuses browsers so that a web page cannot drive Gephi.curl http://127.0.0.1:8080/healthshows whether the plugin is running.
Security
The plugin's API listens on 127.0.0.1 only and refuses requests from browsers and from non-local host names. It has no authentication, so any program running under your account can use it. Do not expose port 8080.
Tools (120)
| Category | Count | Examples |
|---|---|---|
| Project & Workspace | 12 | gephi_create_project, gephi_save_project, gephi_duplicate_workspace, gephi_snapshot, gephi_undo |
| Graph Construction | 18 | gephi_add_nodes, gephi_add_edges, gephi_query_nodes, gephi_get_node, gephi_text_to_network, gephi_bipartite_projection (two-mode to one-mode) |
| Statistics & Analysis | 21 | gephi_compute_modularity, gephi_run_statistic (any installed metric), gephi_compare_partitions (detected groups against known ones), gephi_find_shortest_path, gephi_whatif (counterfactual), gephi_compare_nodes, gephi_community_stability (are the communities real?), gephi_compare_workspaces (what changed between two versions) |
| Layout | 9 | gephi_run_layout, gephi_get_layout_properties, gephi_community_layout, gephi_similarity_layout, gephi_bipartite_layout |
| Appearance | 11 | gephi_color_by_partition, gephi_color_edges_by_partition, gephi_size_by_ranking, gephi_label_clusters |
| Filtering | 11 | gephi_filter_by_degree, gephi_extract_backbone, gephi_list_filters, gephi_apply_filter (any filter, by name), gephi_apply_filters (several combined) |
| Attributes | 5 | gephi_get_columns, gephi_set_node_attributes |
| Preview & Export | 14 | gephi_export_png, gephi_export_screenshot (live canvas capture), gephi_export_gexf, gephi_export (VNA, Pajek, DL, and more), gephi_view_graph, gephi_export_legend, gephi_export_figure (map and key as one PDF), gephi_session_receipt (how the figure was made) |
| Data Laboratory | 5 | gephi_column_value_frequencies, gephi_detect_duplicates, gephi_merge_nodes, gephi_create_regex_column, gephi_edit_column |
| Timeline | 3 | gephi_get_timeline, gephi_set_time_from_columns (time from start and end columns), gephi_time_slice (one period in its own workspace) |
| Import | 4 | gephi_import_file, gephi_import_gexf |
| Health & Diagnostics | 3 | gephi_health_check, gephi_visual_qa, gephi_profile_graph |
| View / Camera / Perspective | 4 | gephi_focus_view, gephi_set_selection_mode, gephi_get_perspective, gephi_switch_perspective |
The full reference, layout guide, and statistics guide live in plugins/claude-code/skills/gephi/.
How it works
AI assistant → MCP server (Python) → HTTP on 127.0.0.1:8080 → Gephi plugin (Java) → Gephi Desktop
| Component | Directory |
|---|---|
| Gephi plugin | gephi-ai-plugin/ |
| MCP server | mcp-server/ |
| Claude Code plugin | plugins/claude-code/ |
| Codex plugin | plugins/gephi-network-analysis/ |
| Claude Desktop bundle | mcpb/ |
Development
The Gephi plugin needs JDK 17 or newer (Gephi 0.11.3's libraries are Java 17) and Maven:
cd gephi-ai-plugin
mvn clean package # builds target/gephi-ai-<version>.nbm and copies its jar into Gephi's modules folder
Fully quit and reopen Gephi after every rebuild. Replacing the plugin while Gephi runs can crash it without a clear error. The build copies only the module jar; when the bundled libraries change, install the whole .nbm (RELEASING.md, step 3).
Every build checks the plugin before it compiles and tests it:
- Checkstyle runs with Gephi core's own configuration (
gephi-ai-plugin/checkstyle.xml), and any violation fails the build. SourceRulesTestholds the rules that keep the plugin from freezing Gephi: graph locks released infinally, no loops over live graph iterators, no project changes or graph reads on the interface thread, named daemon threads, and the licence header on every file.
The MCP server is a standard Python package in mcp-server/, tested with pytest, linted with ruff, and type-checked with mypy. The release scripts are checked with shellcheck, and the CI workflow with actionlint. On a pull request, CI also runs scripts/check-fix-tests.sh, which warns about a fix commit that changes no test. The live smoke test (mcp-server/tests/live_smoke_test.py) drives every tool against a running Gephi; its docstring gives the command for a separate test Gephi. Release steps are in RELEASING.md.
Citation
Artz, Matt. 2025. Gephi AI. Software. Zenodo. https://doi.org/10.5281/zenodo.18673386
If you adapt this project, please credit "gephi-ai (Matt Artz, 2025–2026), https://github.com/MattArtzAnthro/gephi-ai".
License
Apache License 2.0. See LICENSE.
Author
Matt Artz, mattartz.me | ORCID
