@aauth/praca

@aauth/praca

An MCP server that brokers discovery and interaction with AAuth resources, providing a fixed set of tools for managing and invoking operations on registered resources.

Category
Visit Server

README

@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/praca

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 needed

State lives at ~/.aauth/praca/:

Path What
resources.json added resources (L1)
catalog/registry.json cached registry list (L2)
catalog/{host}/{vocab}.json (future) cached vocab docs (L3)
connections/{host}.json 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
PRACA_REGISTRY_URL registry URL (default https://registry.aauth.dev)
PRACA_PS_URL Person Server URL (default: from local-keys agent config)
PRACA_AGENT_URL agent provider URL (default: first configured)
PRACA_AGENT_TOKEN + PRACA_AGENT_PRIVATE_JWK (or PRACA_AGENT_KEY_FILE) 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured