BriefPanel is a remote MCP server. Connect it to Cursor, Claude Code, Windsurf, or anything that speaks the Model Context Protocol, and your agent can start monitoring pages and read back what changed.
This is the technical reference. For an overview of what the integration is for, see the MCP page.
Endpoint
https://actions.briefpanel.com/mcp
- Transport — Streamable HTTP, stateless: one JSON-RPC request per
POST, answered with a JSON response. Server-Sent Events are deprecated and not required. - Protocol version —
2024-11-05, advertised in theinitializehandshake.
A discovery document is published at https://briefpanel.com/.well-known/mcp.json, so MCP hosts that auto-discover servers by domain can find it without configuration.
Authentication
Send a personal API key as a Bearer token:
Authorization: Bearer YOUR_BRIEFPANEL_API_KEY
Create a key under Settings → API & integrations in the app (https://app.briefpanel.com/connect-agent).
Keys start with bp_mcp_ and the same key works for the REST API.
A missing or invalid key returns 401 with a WWW-Authenticate header.
Scopes
Each key carries scopes. Read tools need read; add_source, update_source, and pause_source
need write. Calling a tool your key lacks the scope for fails rather than silently doing nothing.
OAuth
Claude.ai and Claude Desktop custom connectors, and ChatGPT connectors, require OAuth. That flow is coming; until it ships, use any client that can send a Bearer header with the configuration below.
OAuth access tokens (bp_oat_) are audience-bound to the MCP resource, so they authenticate MCP
calls only — not the REST API.
Client configuration
Most clients read the standard mcpServers block:
{
"mcpServers": {
"briefpanel": {
"url": "https://actions.briefpanel.com/mcp",
"headers": { "Authorization": "Bearer YOUR_BRIEFPANEL_API_KEY" }
}
}
}
Claude Code takes it as one command:
claude mcp add --transport http briefpanel https://actions.briefpanel.com/mcp \
--header "Authorization: Bearer YOUR_BRIEFPANEL_API_KEY"
Cursor has a one-click install link on the MCP page.
Tools
Nine tools, six of them read-only.
For every paginated tool, keep following pagination.nextCursor while pagination.hasMore is
true. Filters can make a page empty or shorter than limit even when more results remain.
list_sources
List the web pages you monitor, including monitoring configuration and recent fetch health.
| Argument | Type | Notes |
|---|---|---|
limit |
number | Maximum sources to return, 1–100. Defaults to 25. |
cursor |
string | Opaque value from pagination.nextCursor on the previous response. |
get_source_changes
Typed item updates across your monitored pages. Every result includes the entry title, URL, kind,
updateType, importance, canonical field and valueChange; price updates also include a
convenience priceDelta.
| Argument | Type | Notes |
|---|---|---|
limit |
number | Maximum updates to return, 1–100. Defaults to 25. |
cursor |
string | Opaque value from pagination.nextCursor on the previous response. |
since |
number or string | Epoch milliseconds, or an ISO-8601 timestamp. |
importance |
string | Optional critical, material, or minor filter. |
get_entry_updates
The typed history for one extracted entry. This has the same data contract as the REST API's entry updates endpoint, including filters and cursor pagination.
| Argument | Type | Notes |
|---|---|---|
entryId |
string | Required. The entry ID to inspect. |
limit |
number | Maximum updates to return, 1–100. Defaults to 25. |
cursor |
string | Opaque value from pagination.nextCursor on the previous response. |
importance |
string | Optional critical, material, or minor filter. |
field |
string | Optional tracked field filter, such as price or title. |
get_entry_changes
The fetch/change timeline for one entry, including whether structured diff evidence is available.
| Argument | Type | Notes |
|---|---|---|
entryId |
string | Required. The entry ID to inspect. |
limit |
number | Maximum timeline cards to return, 1–100. Defaults to 25. |
cursor |
string | Opaque value from pagination.nextCursor on the previous response. |
get_credit_balance
Your remaining credits. A check spends one credit per page it reads — the source page, plus each item page it follows. No arguments.
whoami
The identity and scopes tied to the current API key — useful for confirming which account a key belongs to. No arguments.
add_source
Start monitoring a new page. It needs the write scope. Each later check spends one credit per page it reads.
| Argument | Type | Notes |
|---|---|---|
url |
string | Required. The page URL to monitor. |
userPrompt |
string | What changes matter, in plain language. |
monitoringFrequency |
number | Minutes between checks. Defaults to 60, clamped to 5 minutes–7 days. |
notificationsEnabled |
boolean | Whether to notify on changes. Defaults to false. |
Calling it again with the same URL and userPrompt returns the existing source instead of creating
a duplicate.
update_source
Update ordinary settings for a monitored page. It needs the write scope; use pause_source to
stop monitoring.
| Argument | Type | Notes |
|---|---|---|
sourceId |
string | Required. The source ID to update. |
name |
string or null | Optional display name; pass null to clear it. |
userPrompt |
string or null | Optional monitoring instructions; pass null to clear them. |
monitoringFrequency |
number | Optional minutes between checks, clamped to 5 minutes–7 days. |
notificationsEnabled |
boolean | Optional notification toggle. |
updateSensitivity |
number | Optional change sensitivity from 0 through 1. |
Supply at least one setting besides sourceId.
pause_source
Reversibly stop monitoring a page. It needs the write scope; it does not delete the source or its
history. Re-enable monitoring from the BriefPanel app.
| Argument | Type | Notes |
|---|---|---|
sourceId |
string | Required. The source ID to pause. |
Reading history
MCP is built for conversation: use get_source_changes for a cross-source feed and the entry tools
for typed history. The REST API exposes the same core read facades for programmatic
clients, plus snapshot/blob retrieval and its OpenAPI contract.