---
name: 51guanxi-relationship-workspace
description: Use 51Guanxi through GFAVIP headless SSO to research and manage approved warm or historical relationship records without sending, approving campaigns, or managing credentials.
---

# 51Guanxi Agent Access

51Guanxi is a governed warm-relationship workspace. It is not a cold-lead or autonomous outreach system.

## Discover the service

- Application: `https://app.51guanxi.com`
- Agent guidance: `https://app.51guanxi.com/llms.txt`
- OpenAPI: `https://app.51guanxi.com/openapi.json`
- MCP JSON-RPC endpoint: `https://app.51guanxi.com/mcp`
- Protected-resource metadata: `https://app.51guanxi.com/.well-known/oauth-protected-resource`
- GFAVIP headless SSO: `https://wallet.gfavip.com/docs/headless-sso`

## Authenticate

1. Obtain an opaque GFAVIP Wallet session token through the approved headless SSO flow.
2. Send it only in the HTTP authorization header:

   ```http
   Authorization: Bearer gfavip-session-...
   ```

3. Confirm access and the selected organization with `GET /api/auth/validate`.
4. A new identity receives `403 Account pending approval` until a 51Guanxi administrator approves it.
5. Contact-management tools additionally require an `operator`, `admin`, or `owner` membership in the contact's organization.
6. If the identity belongs to more than one organization, send
   `X-51Guanxi-Organization: <organization-id>` on every authenticated request.
   A request without it returns 409 and the caller's available organizations;
   an ID outside the caller's memberships returns 403.

Never place a GFAVIP token in a URL, query string, cookie, request body, prompt, log, screenshot, or support message.

## MCP tools

Read tools:

- `search_people`
- `read_person`
- `list_campaigns`

Audited contact-management tools:

- `preview_people_batch` — validate 1–25 people, identify exact-email duplicates, and create a 24-hour exact preview without creating contacts.
- `create_people_batch` — commit an unexpired preview once; repeated commits return the same result and do not duplicate contacts.
- `create_person` — create one contact; duplicate email addresses are rejected within the organization.
- `update_person` — update allow-listed contact fields.
- `record_relationship_event` — record an evidence-backed purchase, subscription, attendance, membership, inquiry, note, meeting, or introduction.
- `propose_person_enrichment` — create an evidence-backed suggestion for human review.
- `relationship_list_upsert` — create or update a relationship list in the authorized organization.
- `relationship_list_member_add` — add an authorized contact to an authorized list.
- `relationship_list_member_remove` — remove an authorized contact from an authorized list.
- `assign_relationship_owner` — assign an approved member of the same organization.
- `add_person_note` — add a relationship note with the agent identity as author.

Use JSON-RPC `initialize`, then `tools/list`, then `tools/call`. Inspect each tool's published `inputSchema`; do not invent fields.

## Non-negotiable boundaries

The supported agent surface does not allow:

- Deleting people.
- Destructive merges.
- Accepting enrichment suggestions without human review.
- Creating, approving, queueing, or sending campaigns.
- Sending Gmail messages or managing Gmail credentials.
- Removing suppressions or bypassing contactability checks.
- Changing users, roles, organization memberships, or access approval.

Every successful write is organization-scoped and recorded in the existing audit history. Contact creates, updates, and relationship events also appear in the administrator's masked 90-day review ledger. A tool call is not permission to contact a person.

## Errors

- `401`: token is missing, invalid, or expired. Repeat the Wallet headless flow.
- `403`: the local account is pending, the organization membership is read-only, or the record is outside the authorized organization.
- `404`: the record is absent or intentionally hidden by organization scope.
- `409`: the request conflicts with current state or uniqueness rules, or a
  multi-organization identity must choose an organization from the returned list.
- `429`: retry after the returned `Retry-After` interval; do not rotate tokens to bypass limits.
- `503`: Wallet or a required migrated schema is unavailable. Stop and retry later; do not fall back to URL tokens.

## Safe workflow

1. For a set of people, call `preview_people_batch` once with a stable task-specific idempotency key. Review every per-person `status` before committing its returned `batch_token` with `create_people_batch`.
2. For a single person, search before creating; `create_person` rejects an existing exact email match but names alone are not unique.
3. Read an existing target person and verify relationship evidence.
4. Prepare the smallest necessary change.
5. Use enrichment proposals for researched facts that need human acceptance.
6. Record relationship events only with a source and an evidence URL or concise evidence note.
7. Create or apply list, owner, note, or allow-listed contact changes only within the authorized organization.
8. Read the person again and report the exact record, fields, events, or memberships changed.
9. Never send or imply that a message was sent.
