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.
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
- Node.js 18+
- pnpm 9+
- Claude Code
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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.