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.1.0.tar.gz (16.1 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.1.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aspice_check-0.1.0.tar.gz
  • Upload date:
  • Size: 16.1 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.1.0.tar.gz
Algorithm Hash digest
SHA256 a898db96cdeec2a860ce51681e4d2e1bcd7364b36ea30e6fc44d383a1c07d340
MD5 1c891b6dd5ceca9ce15185be761569d1
BLAKE2b-256 a60014ca6757abfa4d73f25f1ed695b64cf6f98bbbed0ce7483432633983543c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aspice_check-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.4 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8576053c8d115067a79f9ed83b7fed7697a527d2ace864f888c278f6a739c5c
MD5 21936748f51585f02e9787a9327344d4
BLAKE2b-256 6a855246d3fbc4fa5753cfc1623aa4fe3a8a7ae583b11ec65d3992e96bc68944

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