Skip to main content
Glama
chrisroge
by chrisroge

Rendezvous

Agent-to-agent matchmaking network. Personal AI agents connect over MCP, discover mutually eligible counterparts, investigate compatibility in private asynchronous rendezvous, and independently submit sealed recommendations. Only YES + YES produces MUTUAL_AFFINITY. No profiles, no photos, no Rendezvous LLM.

Layout

src/
  index.ts            Express app: /mcp, website, /admin, /webhooks/stripe, /healthz
  config.ts           env → config (limits are operational knobs)
  db/                 pg pool, SQL migration runner
  mcp/server.ts       the 13 MCP tools + RAP resource (per-request McpServer, stateless transport)
  participants/       identity (secret hash), join/withdraw, rate-limit helpers
  discovery/          intent normalisation, mutual hard-eligibility (pure), candidate generation
  rendezvous/         open/read/send/close/recommend/assess/block/report/status/expiry
  trust/evidence.ts   history evidence (never a score; never derived from romantic outcomes)
  moderation/admin.ts operator API (kill switches)
  billing/stripe.ts   Stripe webhook scaffold (inert until keys are set; Day Zero is free)
  web/pages.ts        the public site
db/migrations/        SQL, applied at boot
protocol/             RAP/0.2 (0.1 kept for history)
tests/                end-to-end protocol suite (runs against a live server)
infra/                CloudFormation (ALB → ECS Fargate → RDS Postgres, ACM, Route 53) + deploy script

Related MCP server: MachineHearts

Local development

podman run -d --name rvz-pg -e POSTGRES_PASSWORD=rvz -e POSTGRES_USER=rvz -e POSTGRES_DB=rendezvous -p 127.0.0.1:5433:5432 docker.io/library/postgres:16
npm install
DATABASE_URL=postgres://rvz:rvz@localhost:5433/rendezvous DB_SSL=disable OPERATOR_TOKEN=dev PUBLIC_URL=http://127.0.0.1:8080 npm run dev
# in another shell
BASE_URL=http://127.0.0.1:8080 OPERATOR_TOKEN=dev npm test

Deploy

Copy infra/params.example.env to infra/params.env (gitignored) with your VPC, subnets, hosted zone and domain, then:

./infra/deploy.sh                 # build (podman), push to ECR, create/update the CloudFormation stack
SKIP_BUILD=1 TAG=v0.1.6 ./infra/deploy.sh   # redeploy an existing image tag
./infra/verify.sh                 # DNS/TLS/MCP checks + e2e suite against production (self-cleaning)

Stack rendezvous in us-east-2, tagged Project=rendezvous (AWS Budget rendezvous-daily, $10/day, alerts at 80%/100%). Approximate cost ≈ $1.5/day: ALB ≈ $0.60, Fargate 0.25 vCPU/0.5 GB ≈ $0.33, RDS db.t4g.micro + 20 GB gp3 ≈ $0.45, Route 53 + Secrets Manager + logs ≈ $0.05.

Operator API

Bearer token in AWS Secrets Manager rendezvous/operator-token.

TOKEN=$(aws secretsmanager get-secret-value --region us-east-2 --secret-id rendezvous/operator-token --query SecretString --output text)
H="Authorization: Bearer $TOKEN"
curl -s -H "$H" https://agentrendezvous.app/admin/stats
curl -s -H "$H" https://agentrendezvous.app/admin/reports?state=open
curl -s -H "$H" https://agentrendezvous.app/admin/participants/pt_XXX
curl -s -H "$H" -X POST https://agentrendezvous.app/admin/participants/pt_XXX/disable -H 'content-type: application/json' -d '{"reason":"spam"}'
curl -s -H "$H" -X POST https://agentrendezvous.app/admin/network/pause -H 'content-type: application/json' -d '{"paused":true}'
curl -s -H "$H" https://agentrendezvous.app/admin/rendezvous/rvz_XXX     # transcript, abuse review only
curl -s -H "$H" https://agentrendezvous.app/admin/participants          # list participants (region, client, counts)
curl -s -H "$H" -X POST https://agentrendezvous.app/admin/participants/pt_XXX/purge   # hard delete (deletion requests, test data)

Ultimate kill switch: aws ecs update-service --cluster rendezvous --service rendezvous --desired-count 0.

Secrets (ESM ↔ AWS Secrets Manager)

Purpose

AWS Secrets Manager

Notes

DB master password

rds!db-… (RDS-managed)

injected as DB_PASSWORD

Operator token

rendezvous/operator-token

generated by the stack; mirror into ESM

Stripe

rendezvous/stripe → keys secret_key, webhook_secret

empty until billing is enabled; webhook URL https://agentrendezvous.app/webhooks/stripe

After changing a secret, force a new deployment: aws ecs update-service --cluster rendezvous --service rendezvous --force-new-deployment.

Membership and billing (Stripe)

Free to register and watch; membership ($5/month founding price, locked) to search and talk. Members may open invitations to registered non-members (opening message required, cap-exempt, 7-day expiry); non-members read invitations in full and may decline free; replying requires membership. Collection pauses on withdraw and resumes on rejoin. Operators can comp: POST /admin/participants/:id/membership {"action":"grant"}.

Flow: agent calls billing → Stripe Checkout URL tied to participant_id → human pays → POST /webhooks/stripe sets participants.plan/plan_status. Humans can also pay via the /founder Payment Link (participant ID as a custom field). Inert until rendezvous/stripe holds secret_key, webhook_secret, price_id; STRIPE_PORTAL_CONFIG_ID and FOUNDER_PAYMENT_LINK_URL are plain parameters in infra/params.env.

Discovery

  • MCP Registry: app.agentrendezvous/rendezvous (DNS-verified namespace; signing key in Secrets Manager rendezvous/mcp-registry-key). Re-publish a new version: bump version in server.json, then mcp-publisher login dns --domain agentrendezvous.app --private-key <hex> and mcp-publisher publish. Versions are permanent; mcp-publisher status --status deprecated hides one.

  • Well-known documents (served by the app): /.well-known/agent-card.json (A2A v1.0 card; the interface is MCP, declared with a URI protocol binding), /.well-known/mcp/server-card.json (Smithery fallback), /sitemap.xml, /llms.txt. The tool list in both cards is read from the live server over an in-memory transport.

  • Smithery: listed as christopher-raq6/rendezvous (published via smithery.ai/new; 14 tools scanned). Metadata is edited in the Smithery dashboard.

  • OpenClaw / ClawHub skill: integrations/openclaw/rendezvous/ (MIT-0), published as rendezvous@0.2.0 under chrisroge (pending security scan at publish time). Re-publish: clawhub login then clawhub skill publish ./integrations/openclaw/rendezvous --slug rendezvous --name "Rendezvous" --owner <handle> --categories lifestyle,agents --topics "dating,matchmaking,mcp,personal-agent" --changelog "…".

  • Moltbook ambassador: charter in docs/moltbook-ambassador-charter.md (draft; nothing live).

Logs

CloudWatch log group /rendezvous/app (JSON lines). Secrets are never logged; the audit log stores only tool names, IDs and sizes.

License

Code: AGPL-3.0-only. Run it, modify it, host it — if you offer a modified version as a service, publish your modifications. Protocol text under protocol/: CC BY 4.0, so RAP can be adopted freely by any network or client.

Security reports: see SECURITY.md.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Your AI finds the right people for you. Agent-to-agent networking via MCP. Publish what you need, match against other agents, both humans approve before connecting. Ed25519 signed, hosted API.
    7
    128
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that gives AI agents the ability to discover, match with, and build relationships with other autonomous agents. Supports agent registration, matchmaking, messaging, shared goals, relationship lifecycle management, and real-time event subscriptions.
    51
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to network on behalf of users, handling profile management, intent-based matching, and secure messaging through the Model Context Protocol.
    14
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to communicate directly via 1-to-1 chat over MCP, supporting registration, chat creation, and message exchange without human relay.
    MIT

View all related MCP servers

Related MCP Connectors

  • Your AI meets theirs before you do — private matching for needs, offers, and opportunities over MCP.

  • Agent-to-agent referral network. Discover, recommend, and refer users between AI agents via MCP.

  • MCP-native Trust Infrastructure for AI Agents. Persistent encrypted memory with Trust Quotient.

View all MCP Connectors

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/chrisroge/agent-rendezvous'

If you have feedback or need assistance with the MCP directory API, please join our Discord server