Skip to main content
Glama
Chaprola MCP Server

Chaprola MCP Server

by cletcher

@chaprola/mcp-server

MCP server for Chaprola — the agent-first data platform.

Gives AI agents 40 tools for structured data storage, querying, web search, URL fetching, scheduled jobs, and execution through the Model Context Protocol.

Quick Start

Claude Code

claude mcp add chaprola-mcp -e CHAPROLA_USERNAME=yourusername -e CHAPROLA_API_KEY=chp_yourkey -- npx @chaprola/mcp-server

Note: After installing, restart Claude Code to load the MCP server. The server description and tools will then be available to Claude.

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "chaprola": {
      "command": "npx",
      "args": ["@chaprola/mcp-server"],
      "env": {
        "CHAPROLA_USERNAME": "yourusername",
        "CHAPROLA_API_KEY": "chp_yourkey"
      }
    }
  }
}

VS Code / Copilot

Add to .vscode/mcp.json:

{
  "servers": {
    "chaprola": {
      "command": "npx",
      "args": ["@chaprola/mcp-server"],
      "env": {
        "CHAPROLA_USERNAME": "yourusername",
        "CHAPROLA_API_KEY": "chp_yourkey"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "chaprola": {
      "command": "npx",
      "args": ["@chaprola/mcp-server"],
      "env": {
        "CHAPROLA_USERNAME": "yourusername",
        "CHAPROLA_API_KEY": "chp_yourkey"
      }
    }
  }
}

Related MCP server: Nexus-MCP

Getting Credentials

# Register (returns your API key — save it immediately)
curl -X POST https://api.chaprola.org/register \
  -H "Content-Type: application/json" \
  -d '{"username": "myname", "passcode": "my-secure-passcode-16chars"}'

Or use the chaprola_register tool after connecting.

Available Tools

Tool

Description

chaprola_hello

Health check

chaprola_register

Create account

chaprola_login

Login (get new API key)

chaprola_check_username

Check username availability

chaprola_delete_account

Delete account + all data

chaprola_sign_baa

Sign Business Associate Agreement (PHI only)

chaprola_baa_status

Check BAA status

chaprola_baa_text

Get BAA text

chaprola_import

Import JSON to Chaprola format

chaprola_import_url

Get presigned upload URL

chaprola_import_process

Process uploaded file

chaprola_import_download

Import from URL (CSV/Excel/JSON/Parquet)

chaprola_export

Export to JSON

chaprola_list

List files

chaprola_compile

Compile .CS source to .PR bytecode

chaprola_run

Execute .PR program

chaprola_run_status

Check async job status

chaprola_publish

Publish program for public access

chaprola_unpublish

Remove public access

chaprola_report

Run published program (no auth)

chaprola_export_report

Run program and save output

chaprola_download

Get presigned download URL

chaprola_query

Filter, aggregate, join data

chaprola_sort

Sort data file

chaprola_index

Build index on field

chaprola_merge

Merge two sorted files

chaprola_optimize

HULDRA nonlinear optimization

chaprola_optimize_status

Check optimization status

chaprola_email_inbox

List emails

chaprola_email_read

Read email

chaprola_email_send

Send email

chaprola_email_delete

Delete email

chaprola_search

Web search via Brave API

chaprola_fetch

Fetch URL content as markdown/text/JSON

chaprola_schedule

Create scheduled recurring job

chaprola_schedule_list

List scheduled jobs

chaprola_schedule_delete

Delete scheduled job

Resources

The server exposes reference documentation as MCP resources:

  • chaprola://cookbook — Language cookbook with complete examples

  • chaprola://endpoints — All 40 API endpoints

  • chaprola://auth — Authentication reference

  • chaprola://gotchas — Common mistakes to avoid

Environment Variables

Variable

Required

Description

CHAPROLA_USERNAME

Yes

Your registered username

CHAPROLA_API_KEY

Yes

Your API key (format: chp_ + 64 hex chars)

HIPAA / BAA

Non-PHI data works without a signed BAA. If handling Protected Health Information (PHI), a human must review and sign the BAA first. The server includes guardrails that warn agents when the BAA is not signed.

Available Tools

44 tools
chaprola_alterA

Modify a data file's schema: widen/narrow/rename fields, add new fields, drop fields. Transforms existing data to match the new schema.

Inputs: name (required), project (required), add, drop, +2 more.

chaprola_baa_statusA

Check whether the authenticated user has signed the BAA

Inputs: no named parameters.

chaprola_baa_textA

Get the current Business Associate Agreement text and version. Present to human for review before signing

Inputs: no named parameters.

chaprola_check_usernameA

Check if a username is available before registering

Inputs: username (required).

chaprola_compileA

Compile Chaprola source (.CS) to bytecode (.PR). READ chaprola://cookbook BEFORE writing source. Key syntax: no PROGRAM keyword (start with commands), no commas, MOVE+PRINT 0 buffer model (not PRINT field), SEEK for primary records, OPEN/READ/WRITE/CLOSE for secondary files, LET supports one operation (no parentheses), field addressing via P.field/S.field requires primary_format/secondary_format params.

Inputs: name (required), source (required), project (required), primary_format, +1 more.

chaprola_consolidateA

Merge a .MRG file into its parent .DA, producing a clean sorted data file. Deletes .MRG and .IGN after success. Aborts if .MRG was modified during the operation.

Inputs: file (required), project (required).

chaprola_delete_accountA

Delete an account and all associated data. Requires passcode confirmation

Inputs: passcode (required), username (required).

chaprola_delete_recordA

Delete a single record matched by a where clause. Marks the record as ignored (.IGN). Physically removed on consolidation.

Inputs: file (required), where (required), project (required).

chaprola_downloadA

Get a presigned S3 URL to download any file you own (1-hour expiry)

Inputs: file (required), type (required), project (required).

chaprola_email_deleteB

Delete a specific email from your mailbox

Inputs: message_id (required).

chaprola_email_inboxA

List emails in the authenticated user's mailbox

Inputs: limit, before.

chaprola_email_readA

Read a specific email by message_id

Inputs: message_id (required).

chaprola_email_sendA

Send an email from your @chaprola.org address. Subject to content moderation

Inputs: to (required), text (required), subject (required), from, +1 more.

chaprola_exportB

Export Chaprola .DA + .F files back to JSON

Inputs: name (required), project (required).

chaprola_export_reportC

Run a .PR program and save output as a persistent .R file in S3

Inputs: name (required), project (required), nophi, title, +3 more.

chaprola_fetchA

Fetch any URL and return clean content. HTML pages converted to markdown. SSRF-protected. Rate limit: 20/day per user

Inputs: url (required), format, max_length.

chaprola_formatA

Inspect a data file's schema — returns field names, positions, lengths, types, and PHI flags

Inputs: name (required), project (required).

chaprola_helloA

Health check — verify the Chaprola API is running

Inputs: name.

chaprola_importC

Import JSON data into Chaprola format files (.F + .DA). Sign BAA first if handling PHI

Inputs: data (required), name (required), project (required), format, +1 more.

chaprola_import_downloadB

Import data directly from a public URL (CSV, TSV, JSON, NDJSON, Parquet, Excel). Optional AI-powered schema inference

Inputs: url (required), name (required), project (required), max_rows, +1 more.

chaprola_import_processB

Process a file previously uploaded to S3 via presigned URL. Generates .F + .DA files

Inputs: name (required), project (required), format.

chaprola_import_urlA

Get a presigned S3 upload URL for large files (bypasses 6MB API Gateway limit)

Inputs: name (required), project (required).

chaprola_indexB

Build an index file (.IDX) for fast lookups on a field

Inputs: file (required), field (required), project (required).

chaprola_insert_recordA

Insert a new record into a data file's merge file (.MRG). The record appears at the end of the file until consolidation.

Inputs: file (required), record (required), project (required).

chaprola_listB

List files in a project with optional wildcard pattern

Inputs: project (required), pattern.

chaprola_loginA

Login and get a new API key. WARNING: invalidates the previous API key

Inputs: passcode (required), username (required).

chaprola_mergeB

Merge two sorted data files into one. Both must share the same format (.F)

Inputs: key (required), file_a (required), file_b (required), output (required), +1 more.

chaprola_optimizeB

Run HULDRA nonlinear optimization using a compiled .PR as the objective evaluator

Inputs: program (required), project (required), elements (required), objectives (required), +4 more.

chaprola_optimize_statusA

Check status of an async optimization job

Inputs: job_id (required), project (required).

chaprola_publishB

Publish a compiled program for public access via /report

Inputs: name (required), project (required), record, primary_file.

chaprola_queryC

SQL-free data query with WHERE, SELECT, aggregation, ORDER BY, JOIN, pivot, and Mercury scoring

Inputs: file (required), project (required), join, limit, +7 more.

chaprola_registerA

Register a new Chaprola account. Returns an API key — save it immediately

Inputs: passcode (required), username (required).

chaprola_reportA

Run a published program and return output. No auth required — program must be published first via /publish

Inputs: name (required), userid (required), project (required).

chaprola_runA

Execute a compiled .PR program. Use async:true for large datasets (>100K records)

Inputs: name (required), project (required), nophi, record, +3 more.

chaprola_run_eachA

Run a compiled .PR program against every record in a data file. Like CHAPRPG from the original SCIOS. Use this for scoring, bulk updates, conditional logic across records.

Inputs: file (required), program (required), project (required), where, +1 more.

chaprola_run_statusC

Check status of an async job. Returns full output when done

Inputs: job_id (required), project (required).

chaprola_scheduleA

Create a scheduled job that runs a Chaprola endpoint on a recurring cron. Max 10 schedules/user, 15-min minimum interval

Inputs: body (required), cron (required), name (required), endpoint (required), +1 more.

chaprola_schedule_deleteA

Delete a scheduled job by name

Inputs: name (required).

chaprola_schedule_listA

List all scheduled jobs for the authenticated user with run history and next execution time

Inputs: no named parameters.

chaprola_sign_baaA

Sign the BAA. STOP: You MUST call chaprola_baa_text first, show the FULL text to the human, and get their EXPLICIT typed approval before calling this. Never sign automatically. Only needed for PHI — non-PHI data works without a BAA.

Inputs: signatory_name (required), organization, signatory_title.

chaprola_sortA

Sort a data file by one or more fields. Modifies the file in place

Inputs: file (required), project (required), sort_by (required).

chaprola_unpublishB

Remove public access from a published program

Inputs: name (required), project (required).

chaprola_update_recordA

Update fields in a single record matched by a where clause. If no sort-key changes, updates in place; otherwise marks old record ignored and appends to merge file.

Inputs: set (required), file (required), where (required), project (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 44 tools

    Disambiguation3/5

    Several tools have overlapping purposes, particularly the import variants (import, import_process, import_download, import_url) which all involve bringing data in but via different methods. Also, chaprola_report and chaprola_export_report both run programs, and chaprola_run and chaprola_run_each are similar. However, most tools have clear distinct roles (e.g., insert_record vs update_record vs delete_record), and descriptions mitigate some ambiguity.

    Naming Consistency3/5

    All tools share the consistent 'chaprola_' prefix, which is good. However, the suffix pattern is mixed: some tools use verb_noun (insert_record, schedule_delete), others use bare verbs (import, export, list), and there are inconsistent variations like import_process vs import_download vs import_url. Also, BAA tools place the domain word differently (baa_text, sign_baa, baa_status). This inconsistency reduces predictability.

    Tool Count2/5

    With 44 tools, this server is significantly over the typical well-scoped range of 3-15 tools. The large count likely overwhelms agents and makes tool selection harder. Many tools could be consolidated (e.g., the import variants) or omitted (e.g., email and web search may be tangential). While the platform is broad, the sheer number makes the server unwieldy.

    Completeness4/5

    The tool surface is quite comprehensive for the Chaprola data platform, covering import/export, record CRUD, schema operations, program compilation/execution, publishing, scheduling, email, and web search. Minor gaps include a direct 'get record' operation (though query covers it) and file deletion tools. Overall, the domain is well-covered with only a few workarounds needed.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers