@aauth/praca
OfficialAllows interaction with HubSpot API through AAuth resources, enabling management of contacts and other CRM data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@aauth/pracaadd api-hubapi-com.hello-proxy.net"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@aauth/praca
The user's AAuth agent in MCP form. Praca is an MCP stdio server that brokers
discovery to AAuth resources, holds the user's agent identity (via
@aauth/local-keys), and relays interactions between
resources and the Person Server. The LLM sees a fixed eight-tool meta-surface;
new resources and operations are surfaced through the same tools regardless of
scale.
Design: see design.md.
Install
npm install @aauth/pracaRelated MCP server: MachineHearts
v1 tool surface
find_resources(query) → search the registry for discoverable resources
add_resource(host_or_url) → fetch well-known, validate, add to your local set
list_resources() → your added resources
remove_resource(resource) → praca-local unregister (does NOT revoke PS grants)
connect(resource) → pre-authorize (no-op for agent-token resources)
list_operations(resource, query?) → free-text or path-prefix search over ops
get_operations(resource, op_ids[]) → batch fetch full schemas
invoke(resource, op_id, args) → execute; surfaces an auth URL if neededState lives at ~/.aauth/praca/:
Path | What |
| added resources (L1) |
| cached registry list (L2) |
| (future) cached vocab docs (L3) |
| per-resource session state |
Claude Code
Add to .mcp.json (or your Claude Code MCP config):
{
"mcpServers": {
"praca": {
"command": "npx",
"args": ["-y", "@aauth/praca"]
}
}
}Then ask Claude to e.g. "add api-hubapi-com.hello-proxy.net" → "list my
HubSpot contacts". Claude finds the resource via find_resources (or you
hand it the URL directly via add_resource), then runs list_operations /
invoke. The first invoke against an unauthorized aauth-access-token
resource returns a consent URL for you to open.
The MCP server stays up even with no identity configured and surfaces a
bootstrap message to the LLM on first tool call when @aauth/bootstrap hasn't
been run yet.
Configuration
Identity comes from @aauth/local-keys (~/.aauth/) bootstrapped via
npx @aauth/bootstrap. Praca reads it lazily on first tool call. Override
hooks (all optional):
Var | What |
| registry URL (default |
| Person Server URL (default: from local-keys agent config) |
| agent provider URL (default: first configured) |
| software-identity override that bypasses local-keys; intended for tests |
Programmatic use
@aauth/praca is also importable as a library — useful for building tooling
on top of the same agent flow:
import {
fetchResource,
toL1Entry,
invokeAtResource,
buildConfigFromLocalKeys,
} from '@aauth/praca'
const cfg = await buildConfigFromLocalKeys()
const resource = toL1Entry(await fetchResource('api-hubapi-com.hello-proxy.net'))
const result = await invokeAtResource(cfg, resource, 'get-/crm/v3/objects/contacts_getPage', {})License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aauth-dev/praca'
If you have feedback or need assistance with the MCP directory API, please join our Discord server