Copick Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Copick Mcp (Agent Skill) 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.
A Model Context Protocol (MCP) server for Copick that provides two sets of tools:
cd copick-mcp
pip install -e .Use the copick CLI to register the MCP server with Claude Desktop:
# Basic setup (default settings)
copick setup mcp
# Setup with custom server name
copick setup mcp --server-name "my-copick-server"
# Setup with default config path (optional - can be provided per-request)
copick setup mcp --config-path "/path/to/default/config.json"
# Check registration status
copick setup mcp-statusAfter setup:
The MCP server can also be registered with Claude Code, either globally or for a specific project:
# Global setup (available in all Claude Code sessions)
copick setup mcp --target code-global
# Project-specific setup (creates .mcp.json in current directory)
copick setup mcp --target code-project
# Project-specific setup for a different directory
copick setup mcp --target code-project --project-path /path/to/project
# Check status for Claude Code
copick setup mcp-status --target code-global
copick setup mcp-status --target code-projectTarget options:
desktop (default) - Claude Desktop applicationcode-global - Claude Code global config (~/.claude.json)code-project - Claude Code project-specific config (.mcp.json in project root)If you prefer manual setup, add the following configuration to the appropriate file:
Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonClaude Code:
~/.claude.json.mcp.json in your project root{
"mcpServers": {
"copick-mcp": {
"command": "python",
"args": ["-m", "copick_mcp.main"],
"env": {}
}
}
}All data exploration tools require a config_path parameter pointing to your copick configuration file.
#### list_runs List all runs in a Copick project.
config_path (str)#### get_run_details Get detailed information about a specific run including voxel spacings, picks, meshes, and segmentations.
config_path (str), run_name (str)#### list_objects List all pickable objects defined in the project.
config_path (str)#### list_picks List picks for a run with optional filtering.
config_path (str), run_name (str), object_name (optional), user_id (optional), session_id (optional)#### list_meshes List meshes for a run with optional filtering.
config_path (str), run_name (str), object_name (optional), user_id (optional), session_id (optional)#### list_segmentations List segmentations for a run with optional filtering.
config_path (str), run_name (str), voxel_size (optional), name (optional), user_id (optional), session_id (optional), is_multilabel (optional)#### list_tomograms List tomograms for a specific run and voxel spacing.
config_path (str), run_name (str), voxel_spacing (float)#### list_voxel_spacings List all voxel spacings available for a run.
config_path (str), run_name (str)#### get_project_info Get general project information and statistics.
config_path (str)#### get_json_config Get the raw JSON configuration of the project.
config_path (str)These tools help LLMs discover and validate copick CLI commands for building processing pipelines.
#### list_copick_cli_commands List all available copick CLI commands hierarchically organized by group.
main: Core commands (add, browse, config, deposit, info, new, stats, sync)inference: Inference commands (e.g., membrain-seg)training: Training commandsevaluation: Evaluation commandsprocess: Processing commands (downsample, fit-spline, hull, skeletonize, etc.)convert: Conversion commands (picks2seg, mesh2seg, seg2picks, etc.)logical: Logical operations (clipmesh, clippicks, meshop, segop, etc.)#### get_copick_cli_command_info Get detailed information about a specific command.
command_path (str) - e.g., "convert.picks2seg" or "add"#### validate_copick_cli_command Validate a copick CLI command string using Click's syntax validation.
command_string (str) - e.g., "copick convert picks2seg --config /path/to/config.json ..."User: "Show me all runs in my copick project at /data/my_project/config.json"
Assistant uses: list_runs(config_path="/data/my_project/config.json")
User: "What picks are available for run TS_001?"
Assistant uses: list_picks(config_path="/data/my_project/config.json", run_name="TS_001")
User: "Show me only the ribosome picks from user 'annotator1'"
Assistant uses: list_picks(
config_path="/data/my_project/config.json",
run_name="TS_001",
object_name="ribosome",
user_id="annotator1"
)User: "I want to convert picks to a segmentation. What copick command can do that?"
Assistant uses: list_copick_cli_commands()
# Discovers convert.picks2seg command
Assistant uses: get_copick_cli_command_info(command_path="convert.picks2seg")
# Gets full documentation and parameters
Assistant explains:
"The picks2seg command converts picks to segmentation by painting spheres at pick locations.
It requires:
- --config: Path to copick config
- --input: Picks URI (format: object_name:user_id/session_id)
- --output: Segmentation URI (format: name:user_id/session_id@voxel_spacing)
- --radius: Sphere radius in angstroms (default: 10.0)"
User: "Can you validate this command for me: copick convert picks2seg --config /data/config.json --input 'ribosome:user1/manual-001' --output 'ribosome:picks2seg/[email protected]'"
Assistant uses: validate_copick_cli_command(
command_string="copick convert picks2seg --config /data/config.json --input 'ribosome:user1/manual-001' --output 'ribosome:picks2seg/[email protected]'"
)# Returns validation result: valid=True if syntax is correctUser: "I want to build a pipeline that:
1. Converts ribosome picks to meshes
2. Computes the convex hull of those meshes
3. Converts the hulls to segmentations"
Assistant uses: list_copick_cli_commands()
# Discovers relevant commands in convert and process groups
Assistant uses: get_copick_cli_command_info(command_path="convert.picks2mesh")
Assistant uses: get_copick_cli_command_info(command_path="process.hull")
Assistant uses: get_copick_cli_command_info(command_path="convert.mesh2seg")
# Gets documentation for each command
Assistant suggests the pipeline:
"Here's a three-step pipeline for your workflow:
Step 1: Convert picks to meshes
copick convert picks2mesh --config /path/to/config.json \
--input 'ribosome:user1/manual-001' \
--output 'ribosome:pipeline/step1-meshes' \
--method convex_hull
Step 2: Compute convex hull (if not done in step 1)
copick process hull --config /path/to/config.json \
--input-mesh 'ribosome:pipeline/step1-meshes' \
--output-mesh 'ribosome:pipeline/step2-hulls'
Step 3: Convert meshes to segmentation
copick convert mesh2seg --config /path/to/config.json \
--input 'ribosome:pipeline/step2-hulls' \
--output 'ribosome:pipeline/[email protected]'"# Check MCP server status (Claude Desktop)
copick setup mcp-status
# Check status for Claude Code
copick setup mcp-status --target code-global
copick setup mcp-status --target code-project
# Remove MCP server configuration (Claude Desktop)
copick setup mcp-remove --server-name "copick-mcp"
# Remove from Claude Code
copick setup mcp-remove --server-name "copick-mcp" --target code-global
copick setup mcp-remove --server-name "copick-mcp" --target code-project
# Force removal without confirmation
copick setup mcp-remove --server-name "copick-mcp" --forcecopick setup mcp-status to validate your configurationpip install -e . from the copick-mcp directory)# Install in development mode
cd copick-mcp
pip install -e ".[dev]"
# Format code
black src/
# Lint
ruff check --fix src/
# Run the server locally for testing
python -m copick_mcp.mainMIT License - See LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.