abba-mcp 0.25.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- abba_mcp-0.25.0/LICENSE +21 -0
- abba_mcp-0.25.0/PKG-INFO +123 -0
- abba_mcp-0.25.0/README.md +99 -0
- abba_mcp-0.25.0/pyproject.toml +41 -0
- abba_mcp-0.25.0/setup.cfg +4 -0
- abba_mcp-0.25.0/src/abba_mcp/__init__.py +429 -0
- abba_mcp-0.25.0/src/abba_mcp/__main__.py +3 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - BigWarp Registration.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Copy and Apply Registration.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - DeepSlice Registration.md +26 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Edit Last Registration.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Elastix Registration (Affine).md +20 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Elastix Registration (Spline).md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Manual Affine Registration.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Mirror Slices.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Re-index channels of slices.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Remove Last Registration.md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Align/ABBA - Un-Mirror Slices.md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/ABBA - ABBA Start (alpha).md +24 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/ABBA - ABBA Start.md +23 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/ABBA - Align Big Brains and Atlases (no GUI).md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/ABBA - Close session.md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/ABBA - Start Logging.md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/Create Atlas from Images.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/List BrainGlobe Atlases.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Atlas/Open Atlas.md +20 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Cite/ABBA - Get Prompt for Methods Writing.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Cite/ABBA - How to cite.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/DeepSlice/DeepSlice Info.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Auto Display Range.md +24 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Delete Slices.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Deselect Slices.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Distribute Slices.md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Move Slices.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Raster and cache deformation field.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Raster slice.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Rotate.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Select Slices.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Atlas Slicing Angles.md +20 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Key Slices.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Region Of Interest.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Slice Background.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Slices Min Max Display Range.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Slices Thickness (fill gaps).md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Set Slices Thickness.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Edit/ABBA - Undo or Redo.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Atlas Coordinates of Original Slices to ImageJ.md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Atlas to ImageJ.md +24 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Original Slices to ImageJ.md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Regions To File.md +20 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Regions To Roi Manager.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Registered Slices to BDV Json Dataset (Experimental).md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Registered Slices to BDV.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Registered Slices to ImageJ.md +30 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Registrations To QuPath Project.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Resampled Slices as BDV Source ( experimental ).md +46 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Slices To New QuPath Project.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export Standardized ABBA Project (Zip).md +28 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Export/ABBA - Export registered slices as QuickNII dataset.md +26 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/File/ABBA - Load State.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/File/ABBA - Save State.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Help/ABBA - Ask for help in the forum.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Help/ABBA - Check for updates.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Help/ABBA - Give your feedback.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Help/ABBA - Go to documentation.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/INDEX.md +87 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import Current ImageJ Window.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import QuPath Project.md +18 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import QuickNII Project.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import Sources.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import Standardized ABBA Project (Zip).md +12 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Import/ABBA - Import With Bio-Formats.md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Inspect/ABBA - Get State.md +24 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Inspect/ABBA - Snapshot.md +33 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Inspect/ABBA - Wait.md +20 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Adjust Slicing.md +19 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Define Rectangular ROI.md +23 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Open Demo Slices From OMERO.md +16 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Open Demo Slices From ZENODO.md +14 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Preferences.md +7 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Multi Image To Atlas/ABBA - Run Benchmark.md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Obsolete/ABBA - DeepSlice Registration (Local).md +26 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/Obsolete/ABBA - DeepSlice Registration (Web).md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/AllenBrainAdultMouseAtlasCCF2017Command.md +13 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/AllenBrainAdultMouseAtlasCCF2017v3p1ASRCommand.md +8 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/AllenBrainAdultMouseAtlasCCF2017v3p1Command.md +8 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/AtlasAdjustDisplayCommand.md +10 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/DisplaySettingsCommand.md +22 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/WaxholmSpragueDawleyRatV4Command.md +13 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/WaxholmSpragueDawleyRatV4p2ASRCommand.md +8 -0
- abba_mcp-0.25.0/src/abba_mcp/data/commands/_no_menu/WaxholmSpragueDawleyRatV4p2Command.md +8 -0
- abba_mcp-0.25.0/src/abba_mcp/data/environment.md +29 -0
- abba_mcp-0.25.0/src/abba_mcp/data/examples/abba_demo_pipeline.groovy +59 -0
- abba_mcp-0.25.0/src/abba_mcp/data/guides/abba.md +146 -0
- abba_mcp-0.25.0/src/abba_mcp/data/guides/images-and-import.md +44 -0
- abba_mcp-0.25.0/src/abba_mcp/data/guides/storage-and-exports.md +44 -0
- abba_mcp-0.25.0/src/abba_mcp/data/guides/window.md +192 -0
- abba_mcp-0.25.0/src/abba_mcp/data/instructions.md +38 -0
- abba_mcp-0.25.0/src/abba_mcp/data/scripting/groovy-steps.md +69 -0
- abba_mcp-0.25.0/src/abba_mcp/data/scripting/window_picture.groovy +21 -0
- abba_mcp-0.25.0/src/abba_mcp/data/scripting/window_view.groovy +105 -0
- abba_mcp-0.25.0/src/abba_mcp/env/jgo.toml +41 -0
- abba_mcp-0.25.0/src/abba_mcp/env/logback.xml +7 -0
- abba_mcp-0.25.0/src/abba_mcp/env/startmcp.groovy +20 -0
- abba_mcp-0.25.0/src/abba_mcp/fiji_tools.json +192 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/PKG-INFO +123 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/SOURCES.txt +109 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/dependency_links.txt +1 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/entry_points.txt +2 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/requires.txt +3 -0
- abba_mcp-0.25.0/src/abba_mcp.egg-info/top_level.txt +1 -0
abba_mcp-0.25.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 UNIGE
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
abba_mcp-0.25.0/PKG-INFO
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abba-mcp
|
|
3
|
+
Version: 0.25.0
|
|
4
|
+
Summary: MCP server for ABBA (Aligning Big Brains and Atlases): an AI assistant registers brain sections to atlases in a pinned Fiji
|
|
5
|
+
Author-email: Nicolas Chiaruttini <nicolas.chiaruttini@unige.ch>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/unige-biochem/abba-mcp
|
|
8
|
+
Project-URL: Issues, https://github.com/unige-biochem/abba-mcp/issues
|
|
9
|
+
Project-URL: Documentation, https://abba-documentation.readthedocs.io
|
|
10
|
+
Keywords: mcp,abba,fiji,imagej,brain atlas,registration,neuroscience
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: mcp<2,>=1.9
|
|
21
|
+
Requires-Dist: jgo[cli]>=3.1
|
|
22
|
+
Requires-Dist: cjdk>=0.5
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# abba-mcp: ABBA for AI assistants (experimental)
|
|
26
|
+
|
|
27
|
+
Lets an AI assistant drive [ABBA](https://abba-documentation.readthedocs.io) (Aligning Big Brains and Atlases) to
|
|
28
|
+
register brain sections to an atlas. The assistant runs ABBA's commands, looks at what they produced, and once the
|
|
29
|
+
result is right saves the session (`.abba` state file) and a Groovy script that replays every step.
|
|
30
|
+
|
|
31
|
+
You can follow along and take over at any time: by default, ABBA's window opens on your screen as usual.
|
|
32
|
+
|
|
33
|
+
It is an [MCP](https://modelcontextprotocol.io) server, so it is not tied to one assistant: it works with any
|
|
34
|
+
application (MCP client) that can start a local MCP server, and any model it offers that calls tools and reads
|
|
35
|
+
images (the assistant looks at pictures of your slices).
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
You need [uv](https://docs.astral.sh/uv/getting-started/installation/) and an internet connection for the first
|
|
40
|
+
run. Java, Fiji and ABBA are downloaded for you.
|
|
41
|
+
|
|
42
|
+
### Claude
|
|
43
|
+
|
|
44
|
+
- **Claude Desktop**: download `abba-mcp-<version>.mcpb` from the
|
|
45
|
+
[releases](https://github.com/unige-biochem/abba-mcp/releases) and double-click it.
|
|
46
|
+
- **Claude Code**:
|
|
47
|
+
```
|
|
48
|
+
claude mcp add abba -- uvx abba-mcp
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### VS Code (GitHub Copilot)
|
|
52
|
+
|
|
53
|
+
[](https://vscode.dev/redirect/mcp/install?name=abba&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22abba-mcp%22%5D%7D)
|
|
54
|
+
|
|
55
|
+
Or, from a terminal: `code --add-mcp '{"name":"abba","command":"uvx","args":["abba-mcp"]}'`.
|
|
56
|
+
|
|
57
|
+
### OpenAI
|
|
58
|
+
|
|
59
|
+
- **Codex** (CLI, IDE extension), and the **ChatGPT desktop app**, which shares Codex's configuration:
|
|
60
|
+
```
|
|
61
|
+
codex mcp add abba -- uvx abba-mcp
|
|
62
|
+
```
|
|
63
|
+
- **ChatGPT on the web** connects to remote MCP servers only: it cannot start this one.
|
|
64
|
+
|
|
65
|
+
### Any other MCP client
|
|
66
|
+
|
|
67
|
+
The server talks MCP over stdio (protocol versions 2024-11-05 to 2025-11-25): command `uvx`, arguments
|
|
68
|
+
`abba-mcp`. Most applications (Cursor, Gemini CLI...) take this JSON in their MCP settings:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"abba": {
|
|
74
|
+
"command": "uvx",
|
|
75
|
+
"args": ["abba-mcp"]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`uvx abba-mcp` runs the latest release; `uvx abba-mcp@0.25.0` a given one (the version is the ABBA it runs).
|
|
82
|
+
|
|
83
|
+
The server gives the assistant its rules and points it to its documentation through the MCP *instructions*.
|
|
84
|
+
Some applications do not pass them on: if the assistant seems not to know how to proceed, ask it to read
|
|
85
|
+
`guides/abba.md` with the `abba_docs_read` tool first.
|
|
86
|
+
|
|
87
|
+
## First run
|
|
88
|
+
|
|
89
|
+
The first time the assistant uses Fiji, the server downloads Java, Fiji and ABBA, then starts them: allow several
|
|
90
|
+
minutes; later starts are much faster. Meanwhile the assistant is told that Fiji is starting, and tries again. DeepSlice, Elastix and atlases are also downloaded the first time they are
|
|
91
|
+
needed.
|
|
92
|
+
|
|
93
|
+
## With or without a window
|
|
94
|
+
|
|
95
|
+
- **Window** (default): ABBA opens its window on your screen. You see what the assistant does, can select slices
|
|
96
|
+
for it, and can take over.
|
|
97
|
+
- **Headless**: no window, for servers and remote machines. The assistant shows you snapshots instead, and
|
|
98
|
+
manual registrations are not available. Set the environment variable `ABBA_MCP_HEADLESS=true` for the server:
|
|
99
|
+
`"env": {"ABBA_MCP_HEADLESS": "true"}` next to `"args"` in the JSON, `-e ABBA_MCP_HEADLESS=true` before `--`
|
|
100
|
+
for `claude mcp add`, `--env ABBA_MCP_HEADLESS=true` for `codex mcp add`. In Claude Desktop, turn on
|
|
101
|
+
*Run Fiji without a window* in the extension's settings.
|
|
102
|
+
|
|
103
|
+
## Privacy
|
|
104
|
+
|
|
105
|
+
What the assistant looks at (snapshots of your slices, the session state, file names) is sent to your AI
|
|
106
|
+
provider, as for anything else you show it. Fiji itself is only reachable from your own computer (port 9090 on
|
|
107
|
+
127.0.0.1).
|
|
108
|
+
|
|
109
|
+
## Versions
|
|
110
|
+
|
|
111
|
+
The version is the ABBA version it runs (`0.25.0`), with `.post1`, `.post2`... for a fix of this server alone.
|
|
112
|
+
Every machine gets the same Fiji, ABBA and plugins, and the assistant's documentation is written for exactly that
|
|
113
|
+
version. Your own Fiji installation is not used or modified.
|
|
114
|
+
|
|
115
|
+
## Troubleshooting
|
|
116
|
+
|
|
117
|
+
- **"The Fiji on port 9090 runs ..."**: another Fiji with an MCP server is already running (your own, or one
|
|
118
|
+
started by another version of this bundle). Close it and ask again.
|
|
119
|
+
- **Fiji does not start**: its log is `fiji.log` in `~/.abba-mcp` (set `ABBA_MCP_HOME` to use another folder).
|
|
120
|
+
- Questions about ABBA itself: the [ABBA documentation](https://abba-documentation.readthedocs.io/en/v0.25.0/) of this version and the
|
|
121
|
+
[image.sc forum](https://forum.image.sc/tag/abba).
|
|
122
|
+
|
|
123
|
+
Developing or releasing this bundle: see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# abba-mcp: ABBA for AI assistants (experimental)
|
|
2
|
+
|
|
3
|
+
Lets an AI assistant drive [ABBA](https://abba-documentation.readthedocs.io) (Aligning Big Brains and Atlases) to
|
|
4
|
+
register brain sections to an atlas. The assistant runs ABBA's commands, looks at what they produced, and once the
|
|
5
|
+
result is right saves the session (`.abba` state file) and a Groovy script that replays every step.
|
|
6
|
+
|
|
7
|
+
You can follow along and take over at any time: by default, ABBA's window opens on your screen as usual.
|
|
8
|
+
|
|
9
|
+
It is an [MCP](https://modelcontextprotocol.io) server, so it is not tied to one assistant: it works with any
|
|
10
|
+
application (MCP client) that can start a local MCP server, and any model it offers that calls tools and reads
|
|
11
|
+
images (the assistant looks at pictures of your slices).
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
You need [uv](https://docs.astral.sh/uv/getting-started/installation/) and an internet connection for the first
|
|
16
|
+
run. Java, Fiji and ABBA are downloaded for you.
|
|
17
|
+
|
|
18
|
+
### Claude
|
|
19
|
+
|
|
20
|
+
- **Claude Desktop**: download `abba-mcp-<version>.mcpb` from the
|
|
21
|
+
[releases](https://github.com/unige-biochem/abba-mcp/releases) and double-click it.
|
|
22
|
+
- **Claude Code**:
|
|
23
|
+
```
|
|
24
|
+
claude mcp add abba -- uvx abba-mcp
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### VS Code (GitHub Copilot)
|
|
28
|
+
|
|
29
|
+
[](https://vscode.dev/redirect/mcp/install?name=abba&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22abba-mcp%22%5D%7D)
|
|
30
|
+
|
|
31
|
+
Or, from a terminal: `code --add-mcp '{"name":"abba","command":"uvx","args":["abba-mcp"]}'`.
|
|
32
|
+
|
|
33
|
+
### OpenAI
|
|
34
|
+
|
|
35
|
+
- **Codex** (CLI, IDE extension), and the **ChatGPT desktop app**, which shares Codex's configuration:
|
|
36
|
+
```
|
|
37
|
+
codex mcp add abba -- uvx abba-mcp
|
|
38
|
+
```
|
|
39
|
+
- **ChatGPT on the web** connects to remote MCP servers only: it cannot start this one.
|
|
40
|
+
|
|
41
|
+
### Any other MCP client
|
|
42
|
+
|
|
43
|
+
The server talks MCP over stdio (protocol versions 2024-11-05 to 2025-11-25): command `uvx`, arguments
|
|
44
|
+
`abba-mcp`. Most applications (Cursor, Gemini CLI...) take this JSON in their MCP settings:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"abba": {
|
|
50
|
+
"command": "uvx",
|
|
51
|
+
"args": ["abba-mcp"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`uvx abba-mcp` runs the latest release; `uvx abba-mcp@0.25.0` a given one (the version is the ABBA it runs).
|
|
58
|
+
|
|
59
|
+
The server gives the assistant its rules and points it to its documentation through the MCP *instructions*.
|
|
60
|
+
Some applications do not pass them on: if the assistant seems not to know how to proceed, ask it to read
|
|
61
|
+
`guides/abba.md` with the `abba_docs_read` tool first.
|
|
62
|
+
|
|
63
|
+
## First run
|
|
64
|
+
|
|
65
|
+
The first time the assistant uses Fiji, the server downloads Java, Fiji and ABBA, then starts them: allow several
|
|
66
|
+
minutes; later starts are much faster. Meanwhile the assistant is told that Fiji is starting, and tries again. DeepSlice, Elastix and atlases are also downloaded the first time they are
|
|
67
|
+
needed.
|
|
68
|
+
|
|
69
|
+
## With or without a window
|
|
70
|
+
|
|
71
|
+
- **Window** (default): ABBA opens its window on your screen. You see what the assistant does, can select slices
|
|
72
|
+
for it, and can take over.
|
|
73
|
+
- **Headless**: no window, for servers and remote machines. The assistant shows you snapshots instead, and
|
|
74
|
+
manual registrations are not available. Set the environment variable `ABBA_MCP_HEADLESS=true` for the server:
|
|
75
|
+
`"env": {"ABBA_MCP_HEADLESS": "true"}` next to `"args"` in the JSON, `-e ABBA_MCP_HEADLESS=true` before `--`
|
|
76
|
+
for `claude mcp add`, `--env ABBA_MCP_HEADLESS=true` for `codex mcp add`. In Claude Desktop, turn on
|
|
77
|
+
*Run Fiji without a window* in the extension's settings.
|
|
78
|
+
|
|
79
|
+
## Privacy
|
|
80
|
+
|
|
81
|
+
What the assistant looks at (snapshots of your slices, the session state, file names) is sent to your AI
|
|
82
|
+
provider, as for anything else you show it. Fiji itself is only reachable from your own computer (port 9090 on
|
|
83
|
+
127.0.0.1).
|
|
84
|
+
|
|
85
|
+
## Versions
|
|
86
|
+
|
|
87
|
+
The version is the ABBA version it runs (`0.25.0`), with `.post1`, `.post2`... for a fix of this server alone.
|
|
88
|
+
Every machine gets the same Fiji, ABBA and plugins, and the assistant's documentation is written for exactly that
|
|
89
|
+
version. Your own Fiji installation is not used or modified.
|
|
90
|
+
|
|
91
|
+
## Troubleshooting
|
|
92
|
+
|
|
93
|
+
- **"The Fiji on port 9090 runs ..."**: another Fiji with an MCP server is already running (your own, or one
|
|
94
|
+
started by another version of this bundle). Close it and ask again.
|
|
95
|
+
- **Fiji does not start**: its log is `fiji.log` in `~/.abba-mcp` (set `ABBA_MCP_HOME` to use another folder).
|
|
96
|
+
- Questions about ABBA itself: the [ABBA documentation](https://abba-documentation.readthedocs.io/en/v0.25.0/) of this version and the
|
|
97
|
+
[image.sc forum](https://forum.image.sc/tag/abba).
|
|
98
|
+
|
|
99
|
+
Developing or releasing this bundle: see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "abba-mcp"
|
|
7
|
+
version = "0.25.0"
|
|
8
|
+
description = "MCP server for ABBA (Aligning Big Brains and Atlases): an AI assistant registers brain sections to atlases in a pinned Fiji"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
authors = [{ name = "Nicolas Chiaruttini", email = "nicolas.chiaruttini@unige.ch" }]
|
|
14
|
+
keywords = ["mcp", "abba", "fiji", "imagej", "brain atlas", "registration", "neuroscience"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 4 - Beta",
|
|
17
|
+
"Intended Audience :: Science/Research",
|
|
18
|
+
"Operating System :: OS Independent",
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Topic :: Scientific/Engineering :: Image Processing",
|
|
21
|
+
"Topic :: Scientific/Engineering :: Medical Science Apps.",
|
|
22
|
+
]
|
|
23
|
+
dependencies = [
|
|
24
|
+
"mcp>=1.9,<2",
|
|
25
|
+
"jgo[cli]>=3.1",
|
|
26
|
+
"cjdk>=0.5", # the pinned JDK (env/jgo.toml [java]); also a dependency of jgo
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://github.com/unige-biochem/abba-mcp"
|
|
31
|
+
Issues = "https://github.com/unige-biochem/abba-mcp/issues"
|
|
32
|
+
Documentation = "https://abba-documentation.readthedocs.io"
|
|
33
|
+
|
|
34
|
+
[project.scripts]
|
|
35
|
+
abba-mcp = "abba_mcp:main"
|
|
36
|
+
|
|
37
|
+
[tool.setuptools.packages.find]
|
|
38
|
+
where = ["src"]
|
|
39
|
+
|
|
40
|
+
[tool.setuptools.package-data]
|
|
41
|
+
"abba_mcp" = ["fiji_tools.json", "env/*", "data/**/*"]
|