Provides access to QuickBooks transaction data, invoices, and job balances through the JoeAPI construction management system.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JoeMCPshow me the sales pipeline for this quarter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
JoeAPI MCP Server
Model Context Protocol (MCP) server for JoeAPI construction management system. Exposes construction management tools to Claude and other AI assistants.
Overview
This MCP server provides:
18 pre-built workflows for common construction management tasks
60+ individual tools for direct API access (CRUD operations)
Multi-transport support: Smithery (cloud) and STDIO (local)
Architecture
Deployment Options
1. Smithery (Cloud) - EXISTING
Your MCP server is already deployed on Smithery for cloud access.
Access: Via Smithery marketplace
URL: https://smithery.ai/server/@your-username/joeapi
Transport: HTTP
Use case: Remote access, team collaboration
2. Local STDIO - THIS SETUP
Run MCP server locally on your machine for development/testing.
Transport: STDIO (Standard Input/Output) Use case: Local development, faster iteration, offline work
Local STDIO Setup
Prerequisites
JoeAPI running locally:
npm run dev # Start JoeAPI on http://localhost:8080Build MCP server:
npm run mcp:buildConfigure Claude Desktop:
Copy
mcp/claude-desktop-config.example.jsonUpdate the
commandpath to match your installationAdd to Claude Desktop config
Option A: Development Mode (TypeScript)
For rapid development with auto-recompile:
This runs tsx mcp/local-server.ts - TypeScript executed directly (no build needed).
Option B: Production Mode (Compiled JavaScript)
For production use:
This runs node mcp-build/local-server.js - faster startup, production-ready.
Claude Desktop Configuration
Step 1: Find Claude Config Directory
macOS:
Windows:
Linux:
Step 2: Edit claude_desktop_config.json
Important:
Use absolute paths (not relative like
~/or./)Change
/ABSOLUTE/PATH/TO/joeapi/to your actual pathExample:
/Users/joe/dev/joeapi/mcp-build/local-server.js
Step 3: Restart Claude Desktop
Close and reopen Claude Desktop. The MCP server will connect automatically.
Step 4: Verify Connection
In Claude Desktop, type:
If connected, Claude will have access to all JoeAPI tools.
Available Tools
Workflow Discovery (ALWAYS START HERE!)
find_workflow - Discover pre-built workflows
Set
autoExecute: falseto see ALL 18 workflowsSet
autoExecute: truewith workflow name to get step-by-step instructions
18 Pre-Built Workflows
win_loss_rate- Calculate proposal win/loss statisticssales_pipeline- Analyze active proposals in pipelinework_in_process_report- WIP report for active projectsjob_costing_detail- Detailed job costing analysisproject_profitability- Profit analysis by projectcost_variance_analysis- Actual vs. estimated cost variancecash_flow_forecast- Project cash flow projectionsschedule_variance_analysis- Schedule delays and impactsclient_portal_update- Generate client progress updatessubcontractor_performance- Analyze subcontractor metricsmaterial_tracking- Track material costs and usagelabor_productivity- Analyze labor efficiencycost_per_square_foot- Calculate $/sqft by tradechange_order_tracking- Track change orders/revisionsupgrade_pricing- Price client upgrade requestsupdate_schedule- Extend/adjust project schedulesplan_takeoff- Estimate from building plansestimate_from_previous- Create estimate from past job
60+ Individual Tools (Categories)
Clients - CRUD operations for clients
Contacts - Manage client contacts
SubContractors - Subcontractor management
Proposals - Create and track proposals
ProposalLines - Line items within proposals
Estimates - Project estimates
ProjectManagements - Active project data
ProjectSchedules - Project timelines
ProjectScheduleTasks - Individual tasks
ActionItems - Track action items with:
Comments
Supervisors
Cost changes
Schedule changes
Transactions - QuickBooks transaction data
JobBalances - Current job balances
CostVariance - Cost variance analysis
Invoices - Invoice management
ScheduleRevisions - Schedule change tracking
ProjectDetails - Comprehensive project data
ProposalPipeline - Pipeline analytics
EstimateRevisions - Estimate change history
CostRevisions - Cost revision tracking
Deposits - Deposit/retainer management
ProposalTemplatePricing - Standard pricing templates
Environment Variables
Required
Optional (if JoeAPI requires auth)
Set these in:
Claude Desktop config (recommended):
"env": { "JOEAPI_BASE_URL": "http://localhost:8080" }Shell environment (alternative):
export JOEAPI_BASE_URL=http://localhost:8080
Troubleshooting
MCP Server Not Connecting
1. Check JoeAPI is running:
2. Check MCP server builds:
3. Check Claude Desktop logs:
macOS:
Windows:
4. Test MCP server manually:
Tools Not Appearing in Claude
1. Verify config path is absolute:
Not: ["~/dev/joeapi/mcp-build/local-server.js"] ❌
2. Check disabled flag:
3. Restart Claude Desktop:
Close completely (Cmd+Q on macOS)
Reopen
4. Check for errors in MCP logs
JoeAPI Connection Errors
Error: JoeAPI error (401)
JoeAPI requires authentication
Add API key or dev user ID to config
Error: JoeAPI error (404)
Endpoint not found
Check JoeAPI version matches MCP server
Error: ECONNREFUSED
JoeAPI not running
Start with:
npm run dev
Development
Adding New Tools
Edit
{ name: 'my_new_tool', description: 'Description of tool', inputSchema: { type: 'object', properties: { param1: { type: 'string', description: '...' } }, required: ['param1'] } }Add handler in
case 'my_new_tool': { const { param1 } = args as { param1: string }; result = await callJoeAPI(baseUrl, `/api/v1/endpoint`); break; }Rebuild:
npm run mcp:buildRestart Claude Desktop
Adding New Workflows
Add to
{ name: 'my_workflow', description: 'Brief description', arguments: [...], prompt: 'WORKFLOW: My Workflow\n\nPURPOSE: ...\n\nSTEPS:\n1. ...' }Rebuild and restart
Scripts Reference
Comparison: Smithery vs Local STDIO
Feature | Smithery (Cloud) | Local STDIO |
Setup | Already deployed | Requires local setup |
Access | Remote, anywhere | Local machine only |
Speed | Network latency | Instant (local) |
Availability | Always on | Requires JoeAPI running |
Updates | Auto-deployed | Manual build required |
Collaboration | Team access | Single user |
Best for | Production, team | Development, testing |
Support
MCP SDK Docs: https://modelcontextprotocol.io
Claude Desktop MCP Guide: https://docs.claude.com/docs/mcp
JoeAPI Issues: Check GitHub repo
MCP Server Code:
mcp/index.ts