What the hosted MCP endpoint provides
Connect an MCP-compatible client to https://peopledat.com/mcp. Authenticate with a workspace-bound pd_test_… or pd_live_… API key in the Bearer authorization header.
- Stateless Streamable HTTP transport.
- Workspace-scoped tools and results.
- The same key scopes, entitlement checks, rate limits, exclusions, and credit ledger as REST.
- Privacy-safe request auditing without raw addresses, request bodies, raw IPs, or credentials.
- Deterministic free scenarios for test keys.
- Explicit idempotency and maximum-credit authorization for billable tools.
Connect an MCP-compatible client
Create a test key
In Dashboard → Developer, create apd_test_…key and select only the scopes needed for your first tools. Copy it once into your password manager.Add the remote server
In your client’s remote/Streamable HTTP MCP settings, usehttps://peopledat.com/mcpas the server URL.Set Bearer authentication
Configure anAuthorizationheader whose value isBearer pd_test_…. Do not place the key in the URL.Reload tools
Reconnect or refresh the MCP server, then confirm that the expected PeopleDat tools appear.Start with a read tool
Callcredit_balanceorrecent_jobsbefore trying verification.
{
"name": "peopledat",
"url": "https://peopledat.com/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer pd_test_REPLACE_WITH_YOUR_KEY"
}
}Configuration names differ between MCP clients. The required facts are the HTTPS endpoint, Streamable HTTP support, and the Bearer header.
Choose scopes for the tools you will expose
| Tool | Required scope | Purpose | Maximum billing |
|---|---|---|---|
| credit_balance | credits:read | Read the pooled organization balance | Free |
| usage | usage:read | Read aggregate workspace usage for 1–90 days | Free |
| recent_jobs | jobs:read | List up to 100 recent jobs | Free |
| job_status | jobs:read | Read one job state and counts | Free |
| job_results | jobs:read | Page through canonical job results | Free |
| estimate_bulk_work | jobs:read | Validate and estimate up to 50,000 records | Free |
| verify_one | verifications:write | Run one Quick or Power verification | 0–1 credit |
| create_bulk_job | jobs:write | Create an asynchronous job of up to 50,000 records | 0–50,000 credits |
Test the complete flow without credits
Test keys never invoke Reoon, provider-capacity accounting, or the credit ledger.
Estimate a batch
Callestimate_bulk_workwith a few reservedpeopledat.testrecords. The estimated maximum is zero for a test key.Verify one scenario
Callverify_onewith[email protected],idempotency_keyof at least eight characters, andmax_credits: 0.Exercise every result
Usecatch-all,role,disposable,spam-trap,full,invalid,disabled, andunknownbefore live traffic.Repeat the same request
Reuse the exact idempotency key and input to confirm you receive the original outcome rather than duplicate work.
{
"email": "[email protected]",
"mode": "power",
"reference": "crm-contact-42",
"idempotency_key": "mcp-test-contact-42-v1",
"max_credits": 0
}Authorize billable tools explicitly
A live assistant cannot spend merely because its key has a write scope.
verify_one requires a unique idempotency_key and max_credits: 1 for live work. create_bulk_job requires a key plus a maximum at least equal to the submitted record count. This deliberately authorizes the worst-case conclusive charge; unknown and excluded results still use zero credits.
{
"name": "Weekly CRM hygiene",
"mode": "power",
"records": [
{ "email": "[email protected]", "reference": "crm-101" },
{ "email": "[email protected]", "reference": "crm-102" }
],
"idempotency_key": "weekly-crm-2026-08-30",
"max_credits": 2
}The bulk tool returns a pending job. Use job_status until it reaches a terminal state, then use job_results with its cursor. Do not ask an assistant to resubmit just because a job is still processing.
Operate MCP safely
- Store API keys in the client’s secure secret store, never in a prompt, repository, screenshot, or shared transcript.
- Start with test keys and the minimum scopes.
- Use a separate key per client/integration so revocation and attribution stay clear.
- Lower per-minute limits and set a daily credit cap for unattended assistants.
- Require human review for expensive bulk actions in the client workflow.
- Revoke a key immediately if its one-time secret is exposed.
Troubleshoot an MCP connection
401 API_KEY_INVALID
Confirm the full key is in an Authorization: Bearer header and has not been truncated. Create a replacement if the secret is lost.
403 API_KEY_SCOPE_DENIED
Add the tool’s required scope by creating a suitably scoped replacement key; keys cannot expand their own permissions.
403 live access suspended
Restore an active subscription or the organization’s settled PayGo entitlement. Test keys continue to support deterministic scenarios.
409 idempotency conflict
The same idempotency key was reused with changed input. Use the original payload or a new operation-specific key.
429 rate limited
Wait for the returned window, reduce concurrency, and confirm the key/workspace limits are appropriate.
Tool execution failed
Record the request ID and tool name, then contact support. The stable message intentionally omits provider and infrastructure details.
Keep going
REST API reference
Use the same credentials and canonical result contract over HTTP.
Webhook guide
Receive durable job completion instead of polling.
Teams and clients
Choose the workspace and least-powerful key boundary.
Security and data handling
Review credential, tenancy, audit, and retention controls.