athena-tools

athena-tools

A Claude Code extension that embeds a senior athenahealth integration engineer in your development workflow, proactively catching data loss bugs and guiding safe DataView queries and API integrations.

Category
Visit Server

README

Pallas — athenahealth Integration Engineer for Claude Code

A Claude Code extension that embeds a senior athenahealth integration engineer in your development workflow. Proactively catches data loss bugs, teaches clinical context, guides you through safe DataView queries and API integrations, and gets smarter from every interaction through a built-in learning loop.

Try It in 30 Seconds

No install needed. Add this to any project's .claude/settings.json:

{
  "mcpServers": {
    "athena-tools": {
      "url": "https://pallas-mcp-server.azurewebsites.net/sse"
    }
  }
}

Then open Claude Code and ask: "How do I safely join PATIENT to CHART in DataView?"

This gives you all 12 MCP tools via the hosted server. For the full experience (slash commands, proactive safety rules, CLAUDE.md guidance), use the install method below.

Full Install

npx pallas-athena-tools setup

This installs to your user-level Claude Code config (~/.claude/):

  • 12 MCP tools connected to the hosted knowledge base
  • 9 slash commands (/sql, /athena-api, /onboard, /diagnose, etc.)
  • CLAUDE.md with proactive safety rules and clinical context

Works in every project — no per-project configuration needed.

Other CLI commands

npx pallas-athena-tools status      # Check installation
npx pallas-athena-tools uninstall   # Remove everything

What It Does

  • Proactive safety — Flags unsafe joins (46% data loss from PATIENTID/CHARTID mismatch), missing soft-delete filters, hardcoded credentials, and CONTEXTID issues
  • Teaches the "why" — Not just "add this filter" but "here's why deleted records exist in healthcare and what happens if you include them"
  • Knowledge base — 828 DataView views, 16K+ columns, 1.3K FK relationships, 1.9K API/FHIR/workflow docs
  • Learning loop — Every interaction feeds lessons back to the KB. Low-risk patterns auto-merge; high-risk discoveries go through human review
  • Working examples — Annotated SQL queries and API code templates in Python, TypeScript, and C#

Slash Commands

Command Description
/onboard Guided onboarding for new athenahealth developers
/sql <query> Generate safe DataView SQL with CONTEXTID, soft-delete, and correct joins
/athena-api <goal> Generate API integration code with OAuth, retry, and error handling
/diagnose <error> Diagnose API or DataView errors with root cause explanation
/review-athena Scan project for athenahealth anti-patterns and safety issues
/validate Pre-deployment safety check
/explain <concept> Deep-dive explanation of any athenahealth concept
/workflow <name> End-to-end clinical/admin workflow guidance
/review-candidates Review and approve/reject pending KB update candidates

MCP Tools

Tool Description
athena_search_kb Full-text search across the knowledge base
athena_explain_view DataView view schema, columns, relationships, and gotchas
athena_explain_join Safe join path between two views with identity chain warnings
athena_diagnose_error Error diagnosis with likely causes and fixes
athena_explain_workflow Clinical/admin workflow documentation
athena_suggest_workflow Recommended integration approach with anti-pattern detection
athena_submit_feedback Report learned patterns back to the KB (learning loop)
athena_list_candidates List pending KB update candidates for review
athena_review_candidate Approve or reject a KB update candidate
athena_report_safety_flag Record a fired proactive safety rule (v0.2.0)
athena_report_outcome Record artifact intent and acceptance at end of interaction (v0.2.0)
athena_command_start Beacon for slash command usage (v0.2.0)

Learning Loop

The extension gets smarter from every developer interaction:

Developer uses Claude Code for athenahealth work
    ↓
Claude calls KB tools (search, explain, diagnose)
    → Each call is recorded (tool, duration, success/failure)
    ↓
Developer's issue is resolved
    ↓
Claude submits feedback: what worked, what was learned
    ↓
Classifier evaluates risk:
    Low risk (error patterns, gotchas) → auto-merged, confidence 0.3
    High risk (schema, identity)       → queued for human review
    ↓
Reviewer approves → promoted to KB, confidence 0.7
    ↓
Next developer benefits from this knowledge

Development

Prerequisites

Local Development

git clone https://github.com/nous-ehr/claude_pallas_extension.git
cd claude_pallas_extension
pnpm install
pnpm build
claude    # Opens Claude Code with local MCP server

Environment Variables

Variable Default Description
PALLAS_KB_PATH ./data Path to directory containing kb.json
PALLAS_LOG_LEVEL error Log level: error, warn, info, debug
PALLAS_TRANSPORT stdio Transport: stdio (local) or http (Azure)
PALLAS_PORT 8080 Port for HTTP transport
COSMOS_ENDPOINT Azure Cosmos DB endpoint (enables learning loop)
COSMOS_KEY Azure Cosmos DB key
COSMOS_DATABASE pallas-kb Cosmos DB database name

Project Structure

pallas_claude_extension/
├── CLAUDE.md                     # "Senior engineer" brain
├── data/kb.json                  # Knowledge base (828 views, 16K columns, 1.9K docs)
├── examples/                     # Annotated SQL + API code templates
├── .claude/
│   ├── settings.json             # MCP server config
│   └── commands/                 # 9 slash commands
├── packages/
│   ├── mcp-server/               # MCP server (9 tools, dual transport)
│   │   └── src/
│   │       ├── server.ts         # stdio + HTTP/SSE
│   │       ├── db/kbStore.ts     # KB with MiniSearch
│   │       ├── tools/            # 9 tool implementations
│   │       └── learning/         # Event capture, classifier, Cosmos DB
│   └── cli/                      # npm package installer
└── .github/workflows/deploy.yml  # Auto-deploy to Azure on push

Architecture

This extension is fully independent from the Athena Tools VS Code extension. They share the same knowledge base source data but have separate codebases, separate deployments, and separate evolution paths. Neither can break the other.

License

  • Source code: MIT
  • Knowledge base (data/kb.json): CC BY-NC-SA 4.0 — non-commercial use only; contact maintainers for commercial licensing

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured