Droblet MCP · Model Context Protocol

Your customs data,
inside the tools your team already uses.

The Droblet MCP server exposes the platform as tools for Claude, ChatGPT, Cursor or any MCP client. Ask whether a shipment is ready to file, draft a declaration from its documents, classify a product, screen a party. Nothing is filed from a chat: approval stays in Droblet, where it is authenticated and audited.

See dScribe

24

Tools

OAuth 2.1

PKCE required, S256 only

0

Submit tools, by design

Why an MCP server

Most of a customs team's day is questions. Is this shipment ready to file? What is missing? Which document disagrees with which? What code does this product take, and what duty does that carry? Today those answers live in a web application, and the person asking has to leave whatever they were doing to go and find them.

MCP (Model Context Protocol) lets an AI assistant call tools in another system. The Droblet MCP server makes the platform available that way, so a broker can ask Claude "is case 4471 ready to file" and get the gaps, the disagreements between documents and a link to approve, without opening a second window.

It is built around two rules. It holds no credentials: every call carries the caller's own Droblet token and the tenant is read from that token, never from an argument, so the server can see exactly what the person can see and nothing more. And it cannot file a declaration: there is no submit tool at all. A guard the model cannot reach is worth more than an instruction telling it to be careful.

The tools

Grouped by what they are for. Every list tool is paged and projected, so a response is a summary, not a database dump.

ToolWhat it answers or does
whoamiWhich account and tenant am I acting for
list_shipmentsShipments, optionally by status
list_declarationsENS or CDS declarations
get_declarationOne declaration with its goods items
list_document_casesBundles of documents that belong to one record
check_caseIs this ready to file: what is missing, where documents disagree
list_schemasWhich document types this account can extract
list_extractionsExtracted documents with confidence and review state
get_extractionThe fields of one document, with provenance
extract_documentRead a document at a URL against a schema, synchronously
preview_declarationWhat a declaration from this case would look like, creating nothing
draft_declarationCreate an ENS draft from the case, with its gaps and assumptions listed
prepare_submissionBlocking issues plus a link for a person to approve in Droblet
classify_commodityCandidate commodity codes, ranked, with the words each one matched
lookup_dutyDuty, VAT, licences and prohibitions for a code
model_landed_costDuty, VAT and total cost across a consignment
screen_partySanctions hits for a party, and how big the list screened was
resolve_partyMatch a name or identifier against your master data
list_master_dataYour registers of suppliers, consignees and codes
list_schedulesThe checks this account runs on a schedule
schedule_checkHave an agent run a task on a schedule and report
list_schedule_runsWhat those checks produced, failures included
list_connectorsWhere completed extractions get delivered
deliver_extractionSend one extraction to those targets

Four worth demonstrating

Most extraction products answer "what does this PDF say". These answer the next question.

•

check_case

Is this shipment ready, and do its documents agree with each other? Returns the missing fields and every place the invoice, packing list and transport document disagree.

•

classify_commodity

Returns candidates with the words each one matched on, so the suggestion can be argued with. The declared code is the importer's liability; the tool informs a choice rather than making one.

•

schedule_check

"Every Monday at 07:00, check inbound shipments for a missing certificate of origin." Runs whether or not anyone opens the app, and reports what it found.

•

draft_declaration

Paperwork in, a declaration out: the draft, the fields no document supplied, the values derived rather than read, and which document each value came from.

Connecting a client

Point the client at the server. It discovers the rest.

{
  "mcpServers": {
    "droblet": {
      "url": "https://mcp.<your-droblet-host>/mcp"
    }
  }
}

# or, for a script, the caller's own Droblet token:
curl https://mcp.<your-droblet-host>/mcp \
  -H "Authorization: Bearer <droblet access token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

An unauthenticated call returns 401 with the resource metadata; the client registers, a person signs in on the Droblet consent page, and the client receives a Droblet access token. PKCE is required and only S256 is accepted.

Security model

The parts a security review will ask about.

•

No stored credentials

The server keeps no tokens and no service account. Every request is made as the person who asked, with their own token.

•

Tenant from the token

The tenant is read from the authenticated token, never from a tool argument, so a prompt injected into a document cannot reach another tenant's data.

•

Nothing can file

There is no submit tool. prepare_submission assembles the evidence and returns an approval link; the filing happens in Droblet, authenticated and audited.

•

OAuth 2.1 end to end

Protected-resource metadata (RFC 9728), server metadata (RFC 8414), dynamic client registration (RFC 7591), PKCE S256 only. The access token issued is a normal Droblet token: one expiry, one revocation.

•

Projected, paged responses

List tools return summaries with a page-size ceiling. A model asking for "everything" gets fifty rows and a cursor, not the database.

•

Anticipated failures explained

A missing permission or an unknown case comes back as a clear tool error the model can relay, not a stack trace.

Common questions

Any MCP client over streamable HTTP: Claude (desktop and claude.ai connectors), ChatGPT, Cursor, and anything built on the MCP SDKs. If the client speaks OAuth 2.1 it connects by itself; if not, a pasted bearer token works.

No. It can draft one, check it and hand you a link to approve it. The approval and the filing happen in Droblet, by a signed-in person, and are audited.

Exactly what the signed-in person can see in Droblet, and nothing else. The tenant and permissions come from their token.

Yes, as part of a Private Cloud deployment. We set the server up on your host with your platform URL; the shared platform will expose it per tenant.

See it from inside Claude

A twenty-minute demo: connect, ask whether a case is ready, draft the declaration, approve it in Droblet.

Try free tools