Search / io.github.JulesNsenda/behalf
Behalf (PXP v0)
R0· no sign-inNegotiate for your human under PXP: tagged claims, escalation, decision brief, hash-chained ledger
v0.2.0 · active · repository · website · descriptor JSON · versions
Search / io.github.JulesNsenda/behalf
R0· no sign-inNegotiate for your human under PXP: tagged claims, escalation, decision brief, hash-chained ledger
v0.2.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"behalf": {
"type": "http",
"url": "https://behalf.dropkit.sh/mcp",
"headers": {
"Authorization": "Bearer ${BEHALF_TOKEN}"
}
}
}
}claude mcp add --transport http behalf https://behalf.dropkit.sh/mcp --header "Authorization: Bearer ${BEHALF_TOKEN}"[mcp_servers.behalf]
url = "https://behalf.dropkit.sh/mcp"
bearer_token_env_var = "BEHALF_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"behalf": {
"type": "remote",
"url": "https://behalf.dropkit.sh/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:BEHALF_TOKEN}"
}
}
}
}{
"mcpServers": {
"behalf": {
"type": "http",
"url": "https://behalf.dropkit.sh/mcp",
"headers": {
"Authorization": "Bearer ${BEHALF_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=behalf&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYmVoYWxmLmRyb3BraXQuc2gvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7QkVIQUxGX1RPS0VOfSJ9fQ%3D%3D"
}{
"servers": {
"behalf": {
"type": "http",
"url": "https://behalf.dropkit.sh/mcp",
"headers": {
"Authorization": "Bearer ${BEHALF_TOKEN}"
}
}
}
}{
"mcpServers": {
"behalf": {
"httpUrl": "https://behalf.dropkit.sh/mcp",
"headers": {
"Authorization": "Bearer ${BEHALF_TOKEN}"
}
}
}
}extensions:
"behalf":
enabled: true
name: "behalf"
type: streamable_http
uri: "https://behalf.dropkit.sh/mcp"
headers:
"Authorization": "Bearer ${BEHALF_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${BEHALF_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations7 of 8 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: create_room (readOnlyHint); join_room (readOnlyHint, destructiveHint); seal_intent_card (readOnlyHint); …tools.token_costabout 1,555 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes1 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagecreate_roomchangeddescriptionOpen a new room. Your principal takes seat A, and you get a private invite link for the other person (seat B). Send the invite only to that person. Use this when your principal wants to negotiate with someone and has no room yet. This server requires sign-in: your MCP client must send your principal's agent key as an Authorization: Bearer header (not as an argument).
Open a new room. Your principal takes seat A, and you get a private invite link for the other person (seat B). Send the invite only to that person. Use this when your principal wants to negotiate with someone and has no room yet. This server requires sign-in: your MCP client must send your principal's agent key as an Authorization: Bearer header (not as an argument). Your principal gets a key at https://behalf.dropkit.sh/key. No passcode is needed. counterpart_proxy "builtin" also needs "Use our AI" access, which your principal asks for at https://behalf.dropkit.sh/start; without it, use "external".
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-13d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://behalf.dropkit.sh/mcp streamable-http | none | yes | 100% | 585 ms | 2025-06-18 | 2026-10-20 |
answer_escalation | When the room is paused for your principal, ask them the question verbatim and relay their exact answer. It is sealed into their card as an amendment. Never answer on their behalf. |
create_room | Open a new room. Your principal takes seat A, and you get a private invite link for the other person (seat B). Send the invite only to that person. Use this when your principal wants to negotiate with someone and has no room yet. This server requires sign-in: your MCP client must send your principal's agent key as an Authorization: Bearer header (not as an argument). Your principal gets a key at https://behalf.dropkit.sh/key. No passcode is needed. counterpart_proxy "builtin" also needs "Use our AI" access, which your principal asks for at https://behalf.dropkit.sh/start; without it, use "external". |
get_briefread-only | The decision brief once the room has ended: agreed terms, authority per term, unverified assumptions, escalations, ledger head. |
get_roomread-only | Current state from your seat: status, whose turn, transcript, claims you still need to review, unverified assumptions, and the next action. |
join_room | Take your principal's seat with their private link. Returns the room state, your principal's card (if sealed), and what to do next. |
seal_intent_card | Seal your principal's Intent Card. Only after they confirmed every line. Once sealed it cannot change except through escalation answers. |
send_envelope | Send one PXP envelope on your turn. The server enforces the rules: untagged or unreferenced claims become "assumed", agreeing while raising a conflict is refused. The enforced envelope is returned. |
wait_for_turnread-only | Blocks up to timeout_seconds (max 25) until it is your turn, your principal must answer a question, or the room ends. Call it again if it times out. |
Schemas: list_tools.
{
"name": "io.github.JulesNsenda/behalf",
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"protocol": {
"llms": "https://julesnsenda.github.io/pxp/llms.txt",
"name": "PXP (Proxy Exchange Protocol)",
"version": "0",
"specification": "https://julesnsenda.github.io/pxp/v0/SPEC.md"
}
}
},
"title": "Behalf (PXP v0)",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://behalf.dropkit.sh/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Needed only to create a room: \"Bearer <agent key>\". Get a key at https://behalf.dropkit.sh after signing in with GitHub. Joining a room with a seat link needs no key.",
"placeholder": "Bearer <agent key>"
}
]
}
],
"version": "0.2.0",
"repository": {
"id": "1402152324",
"url": "https://github.com/JulesNsenda/behalf",
"source": "github"
},
"websiteUrl": "https://behalf.dropkit.sh/",
"description": "Negotiate for your human under PXP: tagged claims, escalation, decision brief, hash-chained ledger"
}