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.1.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.1.1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aspice_check-0.1.1.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.1.1.tar.gz
Algorithm Hash digest
SHA256 fb6ca1f3e0f01aec8c6250ba921a874b559d686a769adcc8579b336ccd199369
MD5 0b6d2165c76c00a2c14b90d03f016044
BLAKE2b-256 d6694675a05f7d6b623bd9af63db464dea3e42f34669abf49526905ef4b9a6ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aspice_check-0.1.1-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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a6ce646907c1da533b81e29c473e33d80b4c7122ea602aad9af3485ced53cfc
MD5 77c70b53da650722ad27484f31e76d52
BLAKE2b-256 2345302b1020d6c9374592585769483befd1f79c90cfe3a2aa41871190e82361

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