Concierge Agent Protocol
Ask a company through its Concierge Agent Protocol front door.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@conciergeprotocol/mcpclaude mcp add concierge-agent-protocol -e 'CAP_FROM=<CAP_FROM>' -- npx -y @conciergeprotocol/mcp@0.1.6
{
"mcpServers": {
"concierge-agent-protocol": {
"command": "npx",
"args": [
"-y",
"@conciergeprotocol/mcp@0.1.6"
],
"env": {
"CAP_FROM": "<CAP_FROM>"
}
}
}
}
Environment variables
CAP_FROMCaller identity, like agent:my-assistant. Defaults to agent:cap-mcp.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Concierge Agent Protocol for JavaScript
Two packages for calling a CAP front door. @conciergeprotocol/client is the library. @conciergeprotocol/mcp is that library behind three tools, so Claude, Cursor, and other MCP hosts can ask a company.
The protocol is at conciergeprotocol.org. These packages only call a front door. A company publishes agent.txt. It does not publish an MCP server.
Install
npm install @conciergeprotocol/client
The MCP server is a command. Install it, or run it with npx as in the block below.
npm install @conciergeprotocol/mcp
Client
import { createClient } from '@conciergeprotocol/client'
const cap = createClient({ from: 'agent:my-assistant' })
const answer = await cap.ask('example.com', 'Do you have a free plan?')
console.log(answer.reply)
A follow-up sends only the new question:
const thread = cap.thread('example.com')
await thread.ask('What do you sell?')
const price = await thread.ask('How much is the cheapest paid plan?')
discover returns null when a site has no front door. ask throws NoDoorError for the same case, which is the signal to browse the site instead.
ask waits up to two minutes. If the company is still answering, the message comes back with status: 'working' and no reply. get reads it again.
Account questions use login. The client opens the company's page, and finishLogin stores the token for the next ask. The token stays in the token store you pass to createClient.
MCP
Cursor, Claude Desktop, and VS Code use the same block. In VS Code it goes in .vscode/mcp.json. In Cursor and Claude Desktop it goes in the MCP settings file.
{
"mcpServers": {
"cap": {
"command": "npx",
"args": ["-y", "@conciergeprotocol/mcp"],
"env": { "CAP_FROM": "agent:my-assistant" }
}
}
}
CAP_FROM defaults to agent:cap-mcp. The tools are cap_discover, cap_ask, and cap_check. The server is listed in the MCP registry as io.github.conciergeprotocol/mcp. cap_ask waits 60 seconds. If the company is still answering, it returns the message id and the model calls cap_check instead of guessing.
Release
Add a changeset, then merge to main:
bun run changeset
Package Checks runs on every push. When it passes on main, the publish workflow opens a version pull request, or publishes both packages and tags the release. The two packages stay on one version. When the npm publish succeeds, the same workflow lists the server in the MCP registry. The repository needs an NPM_TOKEN secret.
License
Apache 2.0
Frequently asked questions
What is Concierge Agent Protocol?
Ask a company through its Concierge Agent Protocol front door.
How do I install Concierge Agent Protocol?
It runs on your machine. In Claude Code: claude mcp add concierge-agent-protocol -e 'CAP_FROM=<CAP_FROM>' -- npx -y @conciergeprotocol/mcp@0.1.6. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Concierge Agent Protocol need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is Concierge Agent Protocol open source?
Yes. Its code is on GitHub under the Apache-2.0 license.
Who maintains Concierge Agent Protocol?
It is published by conciergeprotocol. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.