Connect your AI tools directly to your Bancroft helpdesk using the Model Context Protocol.
The Model Context Protocol (MCP) lets AI assistants like Claude, Cursor, and other LLM tools interact with external services. Bancroft's built-in MCP server gives your AI tools direct access to your helpdesk — list tickets, reply to customers, manage articles, and more, all through natural language.
The MCP server runs on Bancroft's infrastructure. No local install or npm packages needed — just add a URL to your MCP client config.
There are two ways to connect: API key (simple) or OAuth (browser login).
Use a server API key from your Bancroft dashboard. Add this to your MCP client config (e.g. Claude Code ~/.claude.json or project .mcp.json):
{
"mcpServers": {
"bancroft": {
"type": "url",
"url": "https://api.bancrofthq.com/mcp/",
"headers": {
"X-API-Key": "bnc_sv_..."
}
}
}
}For a key-free experience, just point your MCP client at the URL. It will auto-discover OAuth endpoints, open a browser window for you to log in, and handle tokens automatically.
{
"mcpServers": {
"bancroft": {
"type": "url",
"url": "https://api.bancrofthq.com/mcp/"
}
}
}| Name | Type | Description |
|---|---|---|
API Key | X-API-Key header | Server key (bnc_sv_*). Full access to all MCP scopes. Best for automation and CI/CD. |
OAuth 2.1 | Bearer token | Browser-based login with PKCE. Scoped permissions. Best for personal use in AI assistants. |
OAuth tokens are scoped. API keys get all scopes automatically.
| Name | Type | Description |
|---|---|---|
mcp:read | scope | Read tickets, articles, and agents. |
mcp:write | scope | Create and update tickets and articles. |
mcp:ai | scope | Use AI features (categorize, suggest replies, summarize). |
mcp:admin | scope | List agents and customers. |
| Name | Type | Description |
|---|---|---|
list_tickets | mcp:read | List tickets. Filter by status, priority, assignee, or search query. |
get_ticket | mcp:read | Get full ticket details including all messages. |
create_ticket | mcp:write | Create a new support ticket. |
update_ticket | mcp:write | Update a ticket's subject, priority, or status. |
assign_ticket | mcp:write | Assign a ticket to an agent by email, or unassign by omitting the email. |
close_ticket | mcp:write | Close a ticket. |
reply_to_ticket | mcp:write | Send a reply visible to the customer. |
add_internal_note | mcp:write | Add an internal note (not visible to customer). |
| Name | Type | Description |
|---|---|---|
list_categories | mcp:read | List all knowledge base categories. |
list_articles | mcp:read | List articles. Filter by category, status, or search query. |
get_article | mcp:read | Get an article with its full body content. |
create_article | mcp:write | Create a new knowledge base article. |
update_article | mcp:write | Update an article's title, body, or status. |
| Name | Type | Description |
|---|---|---|
categorize_ticket | mcp:ai | Use AI to suggest priority and tags for a ticket. |
suggest_reply | mcp:ai | Use AI to generate a suggested reply for a ticket. |
summarize_ticket | mcp:ai | Use AI to summarize a ticket's conversation history. |
| Name | Type | Description |
|---|---|---|
list_agents | mcp:admin | List all agents in your organization. |
list_customers | mcp:admin | List customers. Optionally search by name or email. |
Once connected, you can interact with your helpdesk using natural language in any MCP-compatible AI tool:
> "Show me all open high-priority tickets" > "Summarize ticket #42" > "Reply to ticket #15 saying we've deployed the fix" > "Create a knowledge base article about our refund policy" > "Who are the agents on my team?"
You can test the MCP endpoint directly using JSON-RPC:
# List available tools curl -X POST https://api.bancrofthq.com/mcp/ \ -H "X-API-Key: bnc_sv_..." \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' # Call a tool curl -X POST https://api.bancrofthq.com/mcp/ \ -H "X-API-Key: bnc_sv_..." \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_tickets","arguments":{}}}'