Skip to main content

Orchestrator composing confluence-ai and aspice-eval into a pipeline CLI and MCP server

Project description

aspice-check

Orchestrator composing confluence-ai and aspice-eval into a pipeline CLI and MCP server.

Pipeline CLI — aspice-analyze

Run a full ASPICE gap analysis pipeline on a Confluence SDP page: export → evaluate → publish.

Usage

aspice-analyze <PAGE_URL> --target-level <1-5> --groups <GROUPS> [OPTIONS]

Examples

# Full pipeline: export, evaluate at level 2, publish report back to Confluence
aspice-analyze \
  "https://acme.atlassian.net/wiki/spaces/ENG/pages/12345/My-SDP" \
  --target-level 2 \
  --groups SWE,MAN \
  --email user@acme.com \
  --api-token YOUR_TOKEN \
  --region us-east-1

# Evaluate without publishing
aspice-analyze \
  "https://acme.atlassian.net/wiki/spaces/ENG/pages/12345/My-SDP" \
  --target-level 1 \
  --groups SWE \
  --no-publish

# Use OpenAI instead of Bedrock
aspice-analyze \
  "https://acme.atlassian.net/wiki/spaces/ENG/pages/12345/My-SDP" \
  --target-level 3 \
  --groups SWE,SYS,MAN,SUP \
  --provider openai \
  --model gpt-4o

Options

Option Env Variable Description
PAGE_URL Confluence Cloud page URL (required)
--target-level ASPICE capability level 1–5 (required)
--groups Comma-separated process groups, e.g. SWE,MAN (required)
--email CONFLUENCE_EMAIL Confluence account email
--api-token CONFLUENCE_API_TOKEN Confluence API token
--provider ASPICE_EVAL_PROVIDER AI provider: bedrock, openai, anthropic (default: bedrock)
--model AI model name (default depends on provider)
--region AWS_DEFAULT_REGION AWS region (required for Bedrock)
--report-title Custom title for the published report page
--output-dir Local directory for intermediate artifacts
--no-publish Skip publishing report to Confluence
--verbose Enable DEBUG-level logging
--quiet Suppress progress messages

Exit Codes

Code Meaning
0 Success
1 Parameter validation error
2 Export stage failure
3 Evaluation stage failure
4 Publish stage failure

MCP Server — aspice-mcp

An MCP (Model Context Protocol) server exposing evaluation and Confluence tools to AI assistants. It uses stdio transport (JSON-RPC 2.0) and works with any MCP-compatible client.

Configuration

The server is configured in your MCP client's config file. The exact location depends on the client:

Client Config file
Claude Desktop (macOS) ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows) %APPDATA%\Claude\claude_desktop_config.json
Kiro .kiro/settings/mcp.json (workspace) or ~/.kiro/settings/mcp.json (global)
VS Code (Copilot) .vscode/mcp.json

Add the following to your config:

{
  "mcpServers": {
    "aspice": {
      "command": "aspice-mcp",
      "args": [],
      "env": {
        "CONFLUENCE_EMAIL": "user@acme.com",
        "CONFLUENCE_API_TOKEN": "your-token",
        "AWS_DEFAULT_REGION": "us-east-1"
      }
    }
  }
}

The env block passes credentials to the server process. Tools that need Confluence access (export_page) or AI providers (evaluate_sdp, describe_image) will use these values. You can omit credentials here and pass them per-tool-call instead.

If aspice-mcp is not on your PATH (e.g. installed in a virtualenv), use the full path:

{
  "mcpServers": {
    "aspice": {
      "command": "/path/to/venv/bin/aspice-mcp",
      "args": []
    }
  }
}

Starting Manually (for testing)

aspice-mcp

The server reads JSON-RPC requests from stdin and writes responses to stdout. Logs go to stderr.

Tool Inventory

Tool Description
evaluate_sdp Evaluate an SDP document against ASPICE knowledge base criteria
validate_kb Validate a knowledge base directory for schema compliance and completeness
list_standards List available knowledge base standards and their process groups
export_page Export a Confluence Cloud page to Markdown with AI image descriptions
describe_image Generate an AI description of an image file

Tool Parameters

evaluate_sdpprovider (required), model (required), sdp_path, sdp_content, target_level (1–5, default 3), process_groups, standard

validate_kbkb_path (required), standard

list_standardskb_path (optional, uses bundled KB if omitted)

export_pagepage_url (required), output_dir (required), email (required), api_token (required), ai_provider, ai_model, output_format

describe_imageimage_path (required), provider (required), model (required), is_gliffy, page_title

Example Tool Call (JSON-RPC)

{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "validate_kb", "arguments": {"kb_path": "/path/to/knowledge_base", "standard": "aspice"}}}

Response:

{"jsonrpc": "2.0", "id": 1, "result": {"content": [{"type": "text", "text": "{\"is_valid\": true, ...}"}]}}

Error Handling

Invalid parameters return a structured error with code -32602:

{"jsonrpc": "2.0", "id": 1, "error": {"code": -32602, "message": "Invalid params", "data": {"tool": "evaluate_sdp", "parameter": "provider", "actual_value": "gpt", "valid_values": ["bedrock", "openai", "anthropic"], "suggestion": "Use one of: bedrock, openai, anthropic"}}}

Installation

From the monorepo (development)

Install all three packages in editable mode from the repo root:

pip install -e ./confluence-ai
pip install -e ./aspice-eval
pip install -e ./aspice-check

This registers the aspice-analyze and aspice-mcp commands in your environment. Verify:

which aspice-mcp
# → /path/to/venv/bin/aspice-mcp

From PyPI (once published)

pip install aspice-check

This pulls in confluence-ai and aspice-eval automatically.

Making aspice-mcp available to MCP clients

MCP clients launch the server as a subprocess, so the aspice-mcp command must be resolvable from the client's environment. Two options:

  1. Use the absolute path in your MCP config (works regardless of PATH):

    { "command": "/path/to/venv/bin/aspice-mcp" }
    
  2. Activate the venv before launching the client, or install into the system Python so aspice-mcp is on the global PATH.

To find the path after installing:

which aspice-mcp

Requires Python 3.10+.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aspice_check-0.2.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aspice_check-0.2.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file aspice_check-0.2.0.tar.gz.

File metadata

  • Download URL: aspice_check-0.2.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aspice_check-0.2.0.tar.gz
Algorithm Hash digest
SHA256 17ae1cd4e8d1353aa7b5a184d2480833d7c1dfd87a71bfd23e041db2bdae1767
MD5 bce1bbaa983c3f416429baf2c30d118f
BLAKE2b-256 20be94277df61cd84d85e81b5095351ecf9494a28c30904a9aff1482dbf74b10

See more details on using hashes here.

File details

Details for the file aspice_check-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: aspice_check-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aspice_check-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c05bd9850b1c4d0c214c140ff08246cc79ca695397db3d785c9c94d08addcc6d
MD5 992d317af8681e1f19bac0f383428bd4
BLAKE2b-256 20796885a2316399f6c0022cdd0be5a7184517458b3f415b1b03e96ab2b7c40b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page