{"id":"33b37505-38ad-4380-9733-434d42b5c9ec","entityType":"agent","slug":"clawhub-chrischall-gogcli-mcp-contacts","name":"gogcli-mcp-contacts","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chrischall-gogcli-mcp-contacts","canonicalPath":"/agent/clawhub-chrischall-gogcli-mcp-contacts","generatedAt":"2026-10-09T17:36:23.992Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":null},"description":"Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.1K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:gogcli-mcp-contacts","sourceUrl":"https://clawhub.ai/chrischall/gogcli-mcp-contacts","homepage":"https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chrischall/gogcli-mcp-contacts","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":70,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"gogcli-mcp-contacts technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":null},"stars":null,"forks":null,"downloads":3062,"packageName":null,"latestVersion":"4.7.0","tractionLabel":"3.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T10:00:21.387Z","lastCrawledAt":"2026-10-09T10:00:21.387Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T10:00:21.387Z","lastVerifiedAt":null,"highlights":[{"version":"4.7.0","createdAt":"2026-10-07T13:39:18.568Z","changelog":"- Updated dependencies and rebuilt distribution files. - Removed unused documentation file (skill-card.md). - No changes to user-facing features or skill description.","fileCount":15,"zipByteSize":293474},{"version":"4.6.3","createdAt":"2026-10-05T16:43:56.291Z","changelog":"- Updated build output, manifest, and package metadata. - Removed the skill-card.md file. - No changes to functionality or user-facing features.","fileCount":15,"zipByteSize":292981},{"version":"4.6.2","createdAt":"2026-10-05T02:54:04.837Z","changelog":"- Removed the skill-card.md file. - Updated build output and package/reference files (dist/index.js, manifest.json, package.json). - No changes to core features or documented user functionality.","fileCount":15,"zipByteSize":293059},{"version":"4.6.1","createdAt":"2026-10-03T01:44:57.479Z","changelog":"- Updated build and manifest files for compatibility and maintenance. - Removed the documentation file skill-card.md. - No changes to functionality or user-facing features.","fileCount":15,"zipByteSize":292211},{"version":"4.6.0","createdAt":"2026-10-02T12:20:36.091Z","changelog":"- Added updates to multiple core files, including dist/index.js, manifest.json, and package.json. - Made adjustments or improvements to the contacts-extra tool and its tests. - Removed the redundant or outdated skill-card.md documentation. - No changes to public skill description or usage; functionality and available tools remain the same.","fileCount":15,"zipByteSize":289948},{"version":"4.5.2","createdAt":"2026-09-28T05:19:50.995Z","changelog":"- Updated distribution files and package metadata. - Removed the skill-card.md documentation file. - No changes to features or tools; internal and documentation updates only.","fileCount":15,"zipByteSize":281201},{"version":"4.5.1","createdAt":"2026-09-25T15:40:45.023Z","changelog":"- Package dependencies updated and build files regenerated. - skill-card.md documentation file removed. - No changes to skill logic or user-facing features.","fileCount":15,"zipByteSize":280826},{"version":"4.5.0","createdAt":"2026-09-24T15:20:15.625Z","changelog":"- Updated build and manifest files (dist/index.js, manifest.json, package.json) for latest changes. - Removed documentation file: skill-card.md. - No changes to core features or user-facing functionality.","fileCount":15,"zipByteSize":280586}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:gogcli-mcp-contacts","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:gogcli-mcp-contacts` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/gogcli-mcp-contacts before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T17:36:23.986Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-gogcli-mcp-contacts/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":null},"readme":"Skill: gogcli-mcp-contacts\n\nOwner: chrischall\n\nSummary: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n\nTags: latest:4.7.0\n\nVersion history:\n\nv4.7.0 | 2026-10-07T13:39:18.568Z | auto\n\n- Updated dependencies and rebuilt distribution files.\n- Removed unused documentation file (skill-card.md).\n- No changes to user-facing features or skill description.\n\nv4.6.3 | 2026-10-05T16:43:56.291Z | auto\n\n- Updated build output, manifest, and package metadata.\n- Removed the skill-card.md file.\n- No changes to functionality or user-facing features.\n\nv4.6.2 | 2026-10-05T02:54:04.837Z | auto\n\n- Removed the skill-card.md file.\n- Updated build output and package/reference files (dist/index.js, manifest.json, package.json).\n- No changes to core features or documented user functionality.\n\nv4.6.1 | 2026-10-03T01:44:57.479Z | auto\n\n- Updated build and manifest files for compatibility and maintenance.\n- Removed the documentation file skill-card.md.\n- No changes to functionality or user-facing features.\n\nv4.6.0 | 2026-10-02T12:20:36.091Z | auto\n\n- Added updates to multiple core files, including dist/index.js, manifest.json, and package.json.\n- Made adjustments or improvements to the contacts-extra tool and its tests.\n- Removed the redundant or outdated skill-card.md documentation.\n- No changes to public skill description or usage; functionality and available tools remain the same.\n\nv4.5.2 | 2026-09-28T05:19:50.995Z | auto\n\n- Updated distribution files and package metadata.\n- Removed the skill-card.md documentation file.\n- No changes to features or tools; internal and documentation updates only.\n\nv4.5.1 | 2026-09-25T15:40:45.023Z | auto\n\n- Package dependencies updated and build files regenerated.\n- skill-card.md documentation file removed. \n- No changes to skill logic or user-facing features.\n\nv4.5.0 | 2026-09-24T15:20:15.625Z | auto\n\n- Updated build and manifest files (dist/index.js, manifest.json, package.json) for latest changes.\n- Removed documentation file: skill-card.md.\n- No changes to core features or user-facing functionality.\n\nv4.4.0 | 2026-09-24T12:54:20.603Z | auto\n\n- Updated dependencies and package metadata.\n- Improved build outputs in dist/index.js.\n- Removed redundant documentation file skill-card.md for easier maintenance.\n\nv4.3.0 | 2026-09-23T15:49:07.792Z | auto\n\n- Dropped the skill-card.md file.\n- Updated dependencies and build configuration (dist/index.js, package.json, vitest.config.ts).\n- Enhanced contact extra tools logic (src/tools/contacts-extra.ts).\n- Improved and refactored test coverage for extra contact tools (tests/tools/contacts-extra.test.ts).\n- No changes to features or usage instructions.\n\nv4.2.5 | 2026-09-22T14:06:05.889Z | auto\n\n- Updated core dependencies and rebuilt distribution files.\n- Removed the skill-card.md documentation file.\n- Kept all existing features and setup instructions unchanged.\n- No functional changes to tools or API usage.\n\nv4.2.4 | 2026-09-21T04:16:14.163Z | auto\n\n- Maintenance release with minor updates.\n- Updated dependencies in package.json.\n- Removed unnecessary skill-card.md file.\n- Minor changes to build output in dist/index.js and manifest.json.\n\nv4.2.3 | 2026-09-20T23:42:39.230Z | auto\n\n- Updated dependencies and rebuilt compiled output.\n- Improved code structure in contacts-extra utilities.\n- Removed the skill-card.md file.\n- No changes to user-facing features or tool behavior.\n\nv4.2.2 | 2026-09-20T20:37:37.149Z | auto\n\n- Updated dependencies and rebuilt compiled files\n- Removed unnecessary documentation file (skill-card.md)\n- No changes to core features or usage\n\nv4.2.1 | 2026-09-20T19:45:02.434Z | auto\n\n- Internal updates to distribution and manifest files.\n- Updated dependencies in package.json.\n- Removed the redundant skill-card.md documentation file.\n- No changes to core features or usage.\n\nv4.2.0 | 2026-09-20T18:30:21.811Z | auto\n\n- Updated dependencies and bumped package version to 4.2.0.\n- Removed the skill-card.md file.\n- Minor maintenance and metadata updates in dist/index.js, manifest.json, and package.json.\n\nv4.1.0 | 2026-09-20T02:52:42.446Z | auto\n\n- Minimum Node.js requirement updated from 18 to 22.\n- Documentation updated to reflect new Node.js requirement.\n- skill-card.md file removed.\n\nv4.0.1 | 2026-09-18T15:50:47.362Z | auto\n\n- Update to version 4.0.1.\n- Internal files updated: dist/index.js, manifest.json, mint.yaml, package.json.\n- No user-facing feature or documentation changes.\n- Maintains support for Google Contacts and People API operations as described.\n\nv4.0.0 | 2026-09-18T15:21:20.450Z | auto\n\n- Major version update to 4.0.0.\n- Updated multiple files, including `dist/index.js`, `manifest.json`, `mint.yaml`, `package.json`, `src/index.ts`, and `tsconfig.json`.\n- No major documentation, setup, or usage changes in SKILL.md.\n- Internal improvements or dependency updates likely included based on file changes.\n\nv3.0.0 | 2026-09-17T12:10:25.187Z | auto\n\n- Major update to version 3.0.0.\n- Refactored codebase with changes to core files: dist/index.js, manifest.json, package.json, and src/tools/contacts-extra.ts.\n- Removed obsolete documentation file: skill-card.md.\n- No changes to user-facing features or documentation in SKILL.md.\n\nv2.30.0 | 2026-09-14T12:46:10.161Z | auto\n\n- Updated dependencies and rebuilt outputs for improved stability.\n- Removed the skill-card.md file.\n- No changes to user-facing features or functionality.\n\nv2.29.1 | 2026-09-07T19:11:11.856Z | auto\n\n- Updated dependencies and rebuilt distribution files.\n- Removed the unused skill-card.md file.\n- No changes to core tools or user-facing features.\n\nv2.29.0 | 2026-09-04T15:29:06.027Z | auto\n\n- Added full source and test files to the repo, including documentation and configuration files.\n- Introduced extra People API tools under src/tools/contacts-extra.ts with associated tests.\n- Transitioned from a single skill-card.md file to comprehensive project documentation (README.md, CHANGELOG.md, LICENSE, etc.).\n- Now distributed as a Node.js package with manifest and config files for easier installation and testing.\n\nv2.8.0 | 2026-06-12T13:45:06.658Z | auto\n\n- Removed the file: skill-card.md\n- No other changes to functionality or documentation.\n\nv2.7.1 | 2026-06-11T15:37:24.057Z | auto\n\n- Removed the file skill-card.md.\n- No changes to code or user-facing functionality.\n\nv2.7.0 | 2026-06-11T13:30:01.803Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or documentation content.\n\nv2.6.1 | 2026-06-09T14:23:38.167Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or documentation content.\n\nv2.6.0 | 2026-06-09T02:36:57.806Z | auto\n\n- Removed the documentation file skill-card.md.\n- No changes to code or functionality.\n\nv2.5.0 | 2026-06-07T16:53:45.240Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or user-facing features.\n\nv2.4.1 | 2026-06-02T11:56:40.436Z | auto\n\n- Removed the file skill-card.md.\n- No changes to features or functionality.\n\nv2.4.0 | 2026-06-01T18:41:00.609Z | auto\n\n- Removed the file skill-card.md.\n- No other changes to functionality or documentation.\n\nv2.3.0 | 2026-05-30T17:15:54.870Z | auto\n\nNo visible changes in this release.\n\n- Version bumped to 2.3.0 with no file modifications or documentation updates.\n\nv2.2.0 | 2026-05-30T14:41:37.888Z | auto\n\n- Removed the skill-card.md file.\n- No changes to features or documentation content.\n- Housekeeping update only; functionality and setup remain the same.\n\nv2.0.12 | 2026-05-22T02:37:45.770Z | auto\n\nNo changes detected in this version.\n\n- No file changes or updates were made since the previous release.\n\nv2.0.11 | 2026-05-19T16:02:41.230Z | auto\n\n- Updated gogcli reference URLs in documentation from steipete/gogcli to openclaw/gogcli.\n- No changes to features or functionality; documentation update only.\n\nv2.0.10 | 2026-05-19T14:21:36.465Z | auto\n\nVersion 2.0.10 of gogcli-mcp-contacts\n\n- No file changes detected in this version.\n- No updates or modifications to features or documentation.\n\nv2.0.9 | 2026-05-15T20:51:14.631Z | auto\n\nVersion 2.0.9\n\n- No changes detected in this release.\n\nv2.0.8 | 2026-05-14T18:39:01.228Z | auto\n\n- No file changes detected in this release.\n- Functionality and documentation remain unchanged from previous version.\n\nv2.0.7 | 2026-05-14T18:26:00.243Z | auto\n\nVersion 2.0.7\n\n- Updated skill description and documentation for clarity on triggers and available tools.\n- SKILL.md now lists all 15 included tools (auth, Contacts, and People API tools).\n- Added details about People API features, including manager/reports lookup.\n- Expanded setup and requirements sections for improved onboarding.\n- Clear distinction documented between Contacts and Workspace Directory searches.\n\nArchive index:\n\nArchive v4.7.0: 15 files, 293474 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1479723b), LICENSE (1067b), manifest.json (5615b), mint.yaml (4709b), package.json (1129b), README.md (1566b), skill-card.md (1885b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (16191b), tests/tools/contacts-extra.test.ts (15897b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.7.0:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.7.0:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.7.0\",\n  \"publishedAt\": 1791380358568\n}\n\nFile v4.7.0:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.7.0:skill-card.md\n\n## Description:\n\nHelps agents search and manage Google Contacts and look up Google Workspace directory profiles and relationships.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople using an agent with an authorized Google account can find personal contacts, search a Workspace directory, inspect profiles and relationships, and manage contacts when needed.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Access to personal contacts and Workspace profiles may expose sensitive personal information.\n\nMitigation: Use a narrowly scoped Google account and enable GOG_READONLY=1 unless contact changes are needed.\n\nRisk: Additional tools can delete or change contacts, including actions without enforced confirmation.\n\nMitigation: Review agent actions involving delete, dedupe, batch update, export, or run tools before allowing them.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli documentation](https://github.com/openclaw/gogcli)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Files]\n\n**Output Format:** [Contact and directory results as text or JSON; contact exports as vCard files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires an authenticated Google account; available data depends on account permissions.]\n\n## Skill Version(s):\n\n4.7.0 (source: server release, package.json, manifest.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.7.0:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.7.0\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_get\",\n      \"description\": \"Fetch exact Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_create\",\n      \"description\": \"Create Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_update\",\n      \"description\": \"Update Contacts in native People API batches with etag guards.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_delete\",\n      \"description\": \"Permanently delete Contacts in native People API batches after confirmation.\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.7.0:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.7.0\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.15.0\",\n    \"@modelcontextprotocol/server\": \"^2.3.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.7.0:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.7.0:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.43.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.7.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.6.3: 15 files, 292981 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1478102b), LICENSE (1067b), manifest.json (5615b), mint.yaml (4709b), package.json (1129b), README.md (1566b), skill-card.md (1775b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (16191b), tests/tools/contacts-extra.test.ts (15897b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.6.3:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.6.3:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.6.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.3\",\n  \"publishedAt\": 1791218636291\n}\n\nFile v4.6.3:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.6.3:skill-card.md\n\n## Description:\n\nHelps agents search and manage Google Contacts and query Google Workspace directory profiles and relationships through the People API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople and teams use this skill to find personal contacts, search a Google Workspace directory, inspect profiles and reporting relationships, and manage contacts when authorized.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The server can access personal contacts and Workspace directory information.\n\nMitigation: Install only if you trust the server with this account access; use GOG_READONLY=1 for lookup-only work.\n\nRisk: Deletion, deduplication, generic contacts commands, and batch changes may modify or remove contacts without strong confirmation.\n\nMitigation: Review the exact targets and requested changes before allowing destructive or bulk operations.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli](https://github.com/openclaw/gogcli)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON]\n\n**Output Format:** [Text or JSON returned by MCP tools]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results may contain personal contact and Workspace directory information.]\n\n## Skill Version(s):\n\n4.6.3 (source: server release, package.json, manifest.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.6.3:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.6.3\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_get\",\n      \"description\": \"Fetch exact Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_create\",\n      \"description\": \"Create Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_update\",\n      \"description\": \"Update Contacts in native People API batches with etag guards.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_delete\",\n      \"description\": \"Permanently delete Contacts in native People API batches after confirmation.\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.6.3:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.3\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.14.0\",\n    \"@modelcontextprotocol/server\": \"^2.3.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.6.3:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.6.3:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.43.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.6.3:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.6.2: 15 files, 293059 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1477916b), LICENSE (1067b), manifest.json (5615b), mint.yaml (4709b), package.json (1129b), README.md (1566b), skill-card.md (2031b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (16191b), tests/tools/contacts-extra.test.ts (15897b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.6.2:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.6.2:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.6.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.2\",\n  \"publishedAt\": 1791168844837\n}\n\nFile v4.6.2:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.6.2:skill-card.md\n\n## Description:\n\nConnects an agent to Google Contacts and the People API to search profiles and Workspace directory entries, inspect relationships, and manage contacts.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nAgents serving individuals and Workspace users can look up personal contacts and directory profiles, inspect manager relationships, and create or modify Google Contacts when authorized.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Contact updates, deletions, and deduplication can cause irreversible or unintended changes without an enforced confirmation step.\n\nMitigation: Set GOG_READONLY=1 unless writes are needed; review targets and obtain explicit user approval before mutating contacts, especially when requests include untrusted content.\n\nRisk: Google account access and startup refresh-token secrets can expose sensitive contact information on shared hosts.\n\nMitigation: Use a dedicated Google account where possible and avoid supplying startup refresh-token secrets on shared hosts.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli dependency](https://github.com/openclaw/gogcli)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON]\n\n**Output Format:** [MCP tool responses containing contact and profile data or operation results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes personal contact and Workspace directory data when authorized.]\n\n## Skill Version(s):\n\n4.6.2 (source: ClawHub release evidence and package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.6.2:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.6.2\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_get\",\n      \"description\": \"Fetch exact Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_create\",\n      \"description\": \"Create Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_update\",\n      \"description\": \"Update Contacts in native People API batches with etag guards.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_delete\",\n      \"description\": \"Permanently delete Contacts in native People API batches after confirmation.\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.6.2:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.2\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.14.0\",\n    \"@modelcontextprotocol/server\": \"^2.3.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.6.2:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.6.2:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.43.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.6.2:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.6.1: 15 files, 292211 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1474831b), LICENSE (1067b), manifest.json (5615b), mint.yaml (4709b), package.json (1129b), README.md (1566b), skill-card.md (1737b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (16191b), tests/tools/contacts-extra.test.ts (15897b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.6.1:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.6.1:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.6.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.1\",\n  \"publishedAt\": 1790991897479\n}\n\nFile v4.6.1:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.6.1:skill-card.md\n\n## Description:\n\nHelps agents search and manage Google Contacts and look up Workspace directory profiles and relationships through the People API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople using an agent connected to Google Contacts can find personal contacts and Workspace directory profiles, inspect relationships, and manage contacts.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Contact deletion or deduplication can permanently remove or merge records without sufficient enforced confirmation.\n\nMitigation: Restrict delete and dedupe tools to callers requiring explicit approval; use read-only mode for lookup-only access.\n\nRisk: Google credentials persist in gog's local keyring or data directory.\n\nMitigation: Limit OAuth scopes and account access, protect stored credentials, and keep permitted file directories narrow.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli documentation](https://github.com/openclaw/gogcli)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON]\n\n**Output Format:** [Text or JSON tool results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results may include personal contact and Workspace directory data.]\n\n## Skill Version(s):\n\n4.6.1 (source: server release, package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.6.1:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.6.1\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_get\",\n      \"description\": \"Fetch exact Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_create\",\n      \"description\": \"Create Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_update\",\n      \"description\": \"Update Contacts in native People API batches with etag guards.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_delete\",\n      \"description\": \"Permanently delete Contacts in native People API batches after confirmation.\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.6.1:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.1\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.13.0\",\n    \"@modelcontextprotocol/server\": \"^2.1.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.6.1:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.6.1:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.43.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.6.1:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.6.0: 15 files, 289948 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1466833b), LICENSE (1067b), manifest.json (5615b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (2048b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (16191b), tests/tools/contacts-extra.test.ts (15897b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.6.0:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.6.0:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.0\",\n  \"publishedAt\": 1790943636091\n}\n\nFile v4.6.0:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.6.0:skill-card.md\n\n## Description:\n\nHelps agents search and manage Google Contacts, inspect People profiles, and search the Google Workspace directory.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople using an agent can look up personal contacts or Workspace directory entries, inspect profiles and relations, and manage contacts through an authenticated Google account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The connector has ongoing access to Google Contacts and People data.\n\nMitigation: Install only when this access is acceptable; use GOG_READONLY=1 for lookup-only workflows.\n\nRisk: Some delete and merge actions may proceed without enforced user confirmation.\n\nMitigation: Manually confirm delete and dedupe-apply requests before the agent calls a tool; preview duplicate merges first.\n\nRisk: Contact exports can write personal information to local files, and authentication changes affect account access.\n\nMitigation: Restrict GOG_FILE_ROOTS and manually confirm exports and authentication changes.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli documentation](https://github.com/openclaw/gogcli)\n- [Model Context Protocol documentation](https://modelcontextprotocol.io)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Files]\n\n**Output Format:** [MCP tool responses with contact or directory data; optional vCard (.vcf) exports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Responses may contain personal contact and directory information.]\n\n## Skill Version(s):\n\n4.6.0 (source: ClawHub release, package.json, manifest.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.6.0:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.6.0\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_get\",\n      \"description\": \"Fetch exact Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_create\",\n      \"description\": \"Create Contacts in native People API batches.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_update\",\n      \"description\": \"Update Contacts in native People API batches with etag guards.\"\n    },\n    {\n      \"name\": \"gog_contacts_batch_delete\",\n      \"description\": \"Permanently delete Contacts in native People API batches after confirmation.\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.6.0:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.6.0\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.6.0\",\n    \"@modelcontextprotocol/server\": \"^2.1.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.6.0:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.6.0:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.43.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.6.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.5.2: 15 files, 281201 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1442840b), LICENSE (1067b), manifest.json (5065b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (2093b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (12110b), tests/tools/contacts-extra.test.ts (11960b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.5.2:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.5.2:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.5.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.2\",\n  \"publishedAt\": 1790572790995\n}\n\nFile v4.5.2:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.5.2:skill-card.md\n\n## Description:\n\nConnects an agent to Google Contacts and the People API to search contacts, inspect Workspace profiles and relations, and manage personal contacts.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople using an agent with an authorized Google account can look up contacts, search the Workspace directory, inspect profiles and reporting relations, and create, update, delete, or export contacts.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Deletion and duplicate merging can permanently change contact data without an operation-specific confirmation gate.\n\nMitigation: Preview duplicate merges, scope changes narrowly, and obtain user confirmation before deletion or applying merges.\n\nRisk: Contact exports and directory lookups can disclose personal information.\n\nMitigation: Limit searches and exports to authorized data and review recipients and export destinations before sharing.\n\nRisk: Connecting a Google account stores credentials that may be exposed on shared hosts.\n\nMitigation: Use the narrowest OAuth scopes, enable GOG_READONLY=1 for lookup-only use, and protect the credential keyring.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli dependency](https://github.com/openclaw/gogcli)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Files]\n\n**Output Format:** [MCP tool results, including contact and profile data; vCard (.vcf) files for exports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results depend on the connected Google account and granted access.]\n\n## Skill Version(s):\n\n4.5.2 (source: ClawHub release, package.json, manifest.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.5.2:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.5.2\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.5.2:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.2\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.6.0\",\n    \"@modelcontextprotocol/server\": \"^2.1.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.5.2:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.5.2:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.41.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.5.2:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.5.1: 15 files, 280826 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1437765b), LICENSE (1067b), manifest.json (5065b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (1827b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (12110b), tests/tools/contacts-extra.test.ts (11960b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.5.1:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.5.1:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.5.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.1\",\n  \"publishedAt\": 1790350845023\n}\n\nFile v4.5.1:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.5.1:skill-card.md\n\n## Description:\n\nHelps agents search and manage Google Contacts and query Google Workspace profiles and directory relationships through the People API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nUsers and developers use this skill to find personal contacts, search Workspace users, inspect profiles and reporting relationships, and manage contacts through an authenticated Google account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Contact deletion or merging may be irreversible or affect the wrong person.\n\nMitigation: Do not authorize delete or dedupe apply until the exact target is independently confirmed and a backup or recovery plan exists.\n\nRisk: Persistent Google credentials and broad account access expose personal contact and directory data.\n\nMitigation: Use GOG_READONLY=1 for lookup-only use, restrict Google account and OAuth scopes, and keep GOG_FILE_ROOTS narrow.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli documentation](https://github.com/openclaw/gogcli)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Guidance]\n\n**Output Format:** [Text or JSON contact and People API results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results may contain personal contact details and Workspace profile information.]\n\n## Skill Version(s):\n\n4.5.1 (source: ClawHub release, package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.5.1:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.5.1\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.5.1:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.1\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-contacts\",\n  \"description\": \"Extended Google Contacts + People MCP server via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": \"Claude Code (AI) <https://www.anthropic.com/claude>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"type\": \"module\",\n  \"bin\": {\n    \"gogcli-mcp-contacts\": \"dist/index.js\"\n  },\n  \"exports\": {\n    \".\": \"./dist/index.js\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc --noEmit && npm run bundle\",\n    \"bundle\": \"node ../../scripts/bundle.js src/index.ts dist/index.js\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"test\": \"vitest run --coverage\",\n    \"test:watch\": \"vitest\",\n    \"test:coverage\": \"vitest run --coverage\"\n  },\n  \"dependencies\": {\n    \"@chrischall/mcp-utils\": \"^2.6.0\",\n    \"@modelcontextprotocol/server\": \"^2.0.0\",\n    \"zod\": \"^4.6.1\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"mcp\",\n    \"model-context-protocol\",\n    \"claude\",\n    \"ai\",\n    \"google\",\n    \"gogcli\",\n    \"contacts\",\n    \"people\",\n    \"directory\"\n  ]\n}\n\nFile v4.5.1:tsconfig.json\n\n{\n  \"extends\": \"../../tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"rootDir\": \"../\"\n  },\n  \"include\": [\"src/**/*\", \"../gogcli-mcp/src/**/*\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nFile v4.5.1:mint.yaml\n\nversion: 1\nname: Google Contacts (gogcli)\nslug: gogcli-mcp-contacts\nsummary: >-\n  Extended Google Contacts + People MCP server via gogcli — auth + Contacts\n  + Workspace directory (People API)\ncommand:\n  # This package publishes a single bin; naming it keeps the install\n  # unambiguous alongside its eight sibling packages.\n  bin: gogcli-mcp-contacts\nenv:\n  - name: GOG_CLIENT_ID\n    required: false\n    help: >-\n      Google OAuth client id. Read by the Node wrapper at startup\n      (bootstrap-auth.ts), which imports it into gog's keyring via a temp file\n      together with GOG_CLIENT_SECRET, GOG_REFRESH_TOKEN and GOG_ACCOUNT — set\n      all four or none. Not a secret, so unlike GOG_CLIENT_SECRET and\n      GOG_REFRESH_TOKEN it is not stripped from the spawned `gog`'s\n      environment; gog authenticates from its keyring under $HOME (see\n      state.dataDir).\n  - name: GOG_CLIENT_SECRET\n    secret: true\n    required: false\n    help: >-\n      Google OAuth client secret. Imported into gog's keyring at startup with\n      GOG_CLIENT_ID; stripped from the spawned CLI's environment by runner.ts's\n      *_SECRET rule.\n  - name: GOG_REFRESH_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Google OAuth refresh token (`gog auth tokens export` prints one). Imported\n      into gog's keyring at startup with GOG_CLIENT_ID; stripped from the\n      spawned CLI's environment by runner.ts's *_TOKEN rule. Changing it\n      re-imports on the next start; an in-connector re-auth\n      (gog_auth_add_url/complete) stays in effect until it changes.\n  - name: GOG_ACCESS_TOKEN\n    secret: true\n    required: false\n    help: >-\n      Deliberately removed from the spawned CLI's environment by runner.ts, so\n      that a stale directly-passed token cannot shadow gog's stored refresh\n      credential. Leave unset.\n  - name: GOG_ACCOUNT\n    required: false\n    help: >-\n      The Google account to act as. Required for the startup auth bootstrap\n      (the refresh token is imported under this email); otherwise defaults to\n      gog's single/most recent account.\n  - name: GOG_KEYRING_BACKEND\n    required: false\n    help: >-\n      gog's credential store. Set to \"file\" on a headless host — there is no OS\n      keychain — so the keyring lives on the persistent data dir.\n  - name: GOG_KEYRING_PASSWORD\n    secret: true\n    required: false\n    help: >-\n      Encrypts gog's file keyring on the data dir. Required with\n      GOG_KEYRING_BACKEND=file. Deliberately not stripped from the spawned\n      CLI's environment — it is the one credential gog itself reads.\n  - name: GOG_READONLY\n    required: false\n    help: >-\n      Set to 1 to refuse every mutating operation. Recommended when the\n      connector is shared or you only need reads.\n  - name: GOG_PATH\n    required: false\n    help: >-\n      Path to the `gog` binary. Leave unset when the dependency below supplies\n      it; set it only to point at a binary you manage yourself.\n  - name: GOG_TIMEZONE\n    required: false\n    help: >-\n      The IANA zone gog formats its naive timestamps in. The wrapper passes\n      it to every spawned gog and reads it back (naiveSourceTimeZone) to\n      re-attach the offset, so the two always agree. Unset or invalid, both\n      use DISPLAY_TZ, then America/New_York — never the host's local zone.\n  - name: DISPLAY_TZ\n    required: false\n    help: >-\n      The IANA zone every rendered *Display field uses (displayTimeZone,\n      default America/New_York). It does not read GOG_TIMEZONE — the fallback\n      runs the other way, so this is also what GOG_TIMEZONE falls back to. An\n      invalid value degrades to the default rather than throwing.\ndependencies:\n  # Every tool shells out to the `gog` CLI; without it the server starts and\n  # then fails on the first call. This tag must track\n  # packages/gogcli-mcp/src/runner.ts's MIN_GOG_VERSION (the floor the tools\n  # assume). See CLAUDE.md \"Required gog version\" — bumping the floor means\n  # bumping these nine pins, and the pin stored on each mcp-host registration.\n  - kind: github-release\n    repo: openclaw/gogcli\n    tag: v0.41.0\n    asset: \"gogcli_*_linux_amd64.tar.gz\"\n    bin: [gog]\nstate:\n  dataDir: true\n  reason: >-\n    `gog` keeps its authorised-account state and file keyring under $HOME, and\n    the wrapper keeps its auth-bootstrap marker (~/.gogcli-mcp) there, so a\n    restart neither re-imports an unchanged secret nor discards an\n    in-connector re-auth. Without a persistent data dir every cold start has\n    only what the env secrets can re-seed.\negress:\n  allow:\n    # Google OAuth token exchange and the Google REST APIs the CLI calls.\n    - oauth2.googleapis.com\n    - www.googleapis.com\n    - googleapis.com\n\nFile v4.5.1:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Chris Hall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v4.5.0: 15 files, 280586 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1435660b), LICENSE (1067b), manifest.json (5065b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (2289b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (12110b), tests/tools/contacts-extra.test.ts (11960b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nFile v4.5.0:SKILL.md\n\n---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory.\n\nFile v4.5.0:README.md\n\n# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT\n\nFile v4.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.0\",\n  \"publishedAt\": 1790263215625\n}\n\nFile v4.5.0:CHANGELOG.md\n\n# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))\n\nFile v4.5.0:skill-card.md\n\n## Description:\n\nUse when the user asks to look up, search, or manage Google Contacts and the broader People API, including Workspace directory search, profile fields, and manager or reports relations.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and end users connect an agent to an authenticated Google account to search contacts, inspect People API profiles, query Workspace directory records, and manage contact records.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can access and manage contacts for the selected Google account.\n\nMitigation: Install only for accounts where this access is acceptable, and prefer a dedicated or least-privileged Google account when possible.\n\nRisk: Contact delete and dedupe apply actions can remove or merge contacts without an enforced separate confirmation token.\n\nMitigation: Use GOG_READONLY=1 for lookup-only use, preview dedupe plans before applying them, and review delete or merge requests before execution.\n\nRisk: Export tools can write contact data to files.\n\nMitigation: Restrict allowed file directories with GOG_FILE_ROOTS and review requested output paths before exporting contacts.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli dependency](https://github.com/openclaw/gogcli)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n\n## Skill Output:\n\n**Output Type(s):** [text, JSON, files, configuration]\n\n**Output Format:** [MCP tool responses with contact records, diagnostics, raw People API JSON, and vCard export files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may reflect the selected Google account and can include contact mutations or exports when write-capable tools are used.]\n\n## Skill Version(s):\n\n4.5.0 (source: server release metadata, manifest.json, package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v4.5.0:manifest.json\n\n{\n  \"$schema\": \"https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json\",\n  \"manifest_version\": \"0.3\",\n  \"name\": \"gogcli-mcp-contacts\",\n  \"display_name\": \"gogcli (Contacts)\",\n  \"version\": \"4.5.0\",\n  \"description\": \"Extended Google Contacts for Claude via gogcli — auth + Contacts + Workspace directory (People API)\",\n  \"author\": {\n    \"name\": \"Chris Hall\",\n    \"email\": \"chris.c.hall@gmail.com\",\n    \"url\": \"https://github.com/chrischall\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/chrischall/gogcli-mcp\"\n  },\n  \"homepage\": \"https://github.com/chrischall/gogcli-mcp\",\n  \"support\": \"https://github.com/chrischall/gogcli-mcp/issues\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"google\",\n    \"contacts\",\n    \"people\",\n    \"directory\",\n    \"gogcli\",\n    \"gog\"\n  ],\n  \"server\": {\n    \"type\": \"node\",\n    \"entry_point\": \"dist/index.js\",\n    \"mcp_config\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"${__dirname}/dist/index.js\"\n      ],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"${user_config.gog_account}\",\n        \"GOG_PATH\": \"${user_config.gog_path}\",\n        \"GOG_FILE_ROOTS\": \"${user_config.gog_file_roots}\"\n      }\n    }\n  },\n  \"user_config\": {\n    \"gog_account\": {\n      \"type\": \"string\",\n      \"title\": \"Google Account\",\n      \"description\": \"Default Google account email (optional — uses gogcli's configured default if omitted)\",\n      \"required\": false\n    },\n    \"gog_path\": {\n      \"type\": \"string\",\n      \"title\": \"gog Executable Path\",\n      \"description\": \"Path to the gog executable (optional — defaults to 'gog' on your PATH)\",\n      \"required\": false\n    },\n    \"gog_file_roots\": {\n      \"type\": \"string\",\n      \"title\": \"Allowed file directories\",\n      \"description\": \"Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files\",\n      \"required\": false\n    }\n  },\n  \"tools\": [\n    {\n      \"name\": \"gog_auth_add\",\n      \"description\": \"Authorize a Google account via browser-based OAuth\"\n    },\n    {\n      \"name\": \"gog_auth_health\",\n      \"description\": \"Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)\"\n    },\n    {\n      \"name\": \"gog_auth_add_url\",\n      \"description\": \"Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser\"\n    },\n    {\n      \"name\": \"gog_auth_add_complete\",\n      \"description\": \"Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token\"\n    },\n    {\n      \"name\": \"gog_auth_list\",\n      \"description\": \"List all Google accounts stored in gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_status\",\n      \"description\": \"Show gogcli auth configuration\"\n    },\n    {\n      \"name\": \"gog_auth_services\",\n      \"description\": \"List Google services and OAuth scopes supported by gogcli\"\n    },\n    {\n      \"name\": \"gog_auth_run\",\n      \"description\": \"Run any gog auth subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_contacts_search\",\n      \"description\": \"Search personal contacts by name, email, or phone\"\n    },\n    {\n      \"name\": \"gog_contacts_list\",\n      \"description\": \"List all personal contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_get\",\n      \"description\": \"Get a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_create\",\n      \"description\": \"Create a new contact\"\n    },\n    {\n      \"name\": \"gog_contacts_run\",\n      \"description\": \"Run any gog contacts subcommand (escape hatch)\"\n    },\n    {\n      \"name\": \"gog_people_me\",\n      \"description\": \"Show your own People profile\"\n    },\n    {\n      \"name\": \"gog_people_get\",\n      \"description\": \"Get a People profile by resource name\"\n    },\n    {\n      \"name\": \"gog_people_search\",\n      \"description\": \"Search the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_people_relations\",\n      \"description\": \"Get manager/reports relations for a user\"\n    },\n    {\n      \"name\": \"gog_people_raw\",\n      \"description\": \"Dump raw People API JSON for a person\"\n    },\n    {\n      \"name\": \"gog_contacts_update\",\n      \"description\": \"Update an existing contact (empty string clears a field)\"\n    },\n    {\n      \"name\": \"gog_contacts_delete\",\n      \"description\": \"Delete a contact by resource name\"\n    },\n    {\n      \"name\": \"gog_contacts_export\",\n      \"description\": \"Export contacts as vCard (.vcf)\"\n    },\n    {\n      \"name\": \"gog_contacts_dedupe\",\n      \"description\": \"Find duplicate contacts; optionally merge and delete redundants\"\n    },\n    {\n      \"name\": \"gog_contacts_directory_list\",\n      \"description\": \"List people from the Workspace directory\"\n    },\n    {\n      \"name\": \"gog_contacts_other_list\",\n      \"description\": \"List auto-collected other contacts\"\n    },\n    {\n      \"name\": \"gog_contacts_other_search\",\n      \"description\": \"Search auto-collected other contacts\"\n    }\n  ],\n  \"compatibility\": {\n    \"platforms\": [\n      \"darwin\",\n      \"linux\",\n      \"win32\"\n    ],\n    \"runtimes\": {\n      \"node\": \">=22.0.0\"\n    }\n  }\n}\n\nFile v4.5.0:package.json\n\n{\n  \"name\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.5.0\",\n  \"mcpName\": \"io.github.chrischall/gogcli-mcp-conta\n\nArchive v4.4.0: 15 files, 280413 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1435134b), LICENSE (1067b), manifest.json (5065b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (2214b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (12110b), tests/tools/contacts-extra.test.ts (11960b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)\n\nArchive v4.3.0: 15 files, 280241 bytes\n\nFiles: CHANGELOG.md (782b), dist/index.js (1434545b), LICENSE (1067b), manifest.json (5065b), mint.yaml (4709b), package.json (1128b), README.md (1566b), skill-card.md (2456b), SKILL.md (1441b), src/index.ts (531b), src/tools/contacts-extra.ts (12110b), tests/tools/contacts-extra.test.ts (11960b), tsconfig.json (209b), vitest.config.ts (523b), _meta.json (138b)","readmeExcerpt":"Skill: gogcli-mcp-contacts Owner: chrischall Summary: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query. Tags: latest:4.7.0 Version history: v4.7.0 | 2026-10-07T13:39:18.568Z | auto - Updated dependencies and re","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}"},{"language":"bash","snippet":"brew install gogcli\ngog auth add your@gmail.com --services contacts,people"},{"language":"bash","snippet":"npm install -g gogcli-mcp-contacts"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}"},{"language":"bash","snippet":"claude mcp add gogcli-contacts -- gogcli-mcp-contacts"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: gogcli-mcp-contacts\ndescription: Use when the user asks to look up, search, or manage Google Contacts and the broader People API (Workspace directory). Triggers for contact lookups by name/email/phone, Workspace user search, profile fields, manager/reports relations, or any People API query.\n---\n\n# gogcli-mcp-contacts\n\nExtended Google Contacts MCP server via [gogcli](https://github.com/openclaw/gogcli) — 15 tools: auth + 5 base Contacts + 5 extra People API tools.\n\n- **Source:** [github.com/chrischall/gogcli-mcp](https://github.com/chrischall/gogcli-mcp)\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22 or later\n\n## Setup\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"gogcli-mcp-contacts\"],\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n## Extra People Tools\n\n| Tool | What it does |\n|------|-------------|\n| `gog_people_me` | Show your own profile |\n| `gog_people_get` | Get a profile by resource name |\n| `gog_people_search` | Search the Workspace directory |\n| `gog_people_relations` | Manager/reports relations |\n| `gog_people_raw` | Raw People API JSON dump |\n\nPlus 5 auth tools and 5 base Contacts tools (`gog_contacts_search/list/get/create/run`). The base `gog_contacts_search` only sees your personal contacts; use `gog_people_search` for the full Workspace directory."},{"path":"README.md","content":"# gogcli-mcp-contacts\n\n> [!WARNING]\n> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). Review all code and tool permissions before use.\n\nExtended Google Contacts [MCP](https://modelcontextprotocol.io) server via [gogcli](https://github.com/openclaw/gogcli). Includes auth tools plus the base Contacts tools and 5 additional dedicated People API tools for Workspace directory search, profile fields, and relations.\n\n## Requirements\n\n- [gogcli](https://github.com/openclaw/gogcli) installed and authenticated\n- Node.js 22+\n\n```bash\nbrew install gogcli\ngog auth add your@gmail.com --services contacts,people\n```\n\n## Installation\n\n```bash\nnpm install -g gogcli-mcp-contacts\n```\n\n### Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"gogcli-contacts\": {\n      \"command\": \"gogcli-mcp-contacts\",\n      \"env\": {\n        \"GOG_ACCOUNT\": \"you@gmail.com\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add gogcli-contacts -- gogcli-mcp-contacts\n```\n\n## Extra People Tools (5)\n\nPlus 5 auth tools and 5 base Contacts tools (search, list, get, create, run).\n\n| Tool | Description |\n|------|-------------|\n| `gog_people_me` | Show your own People profile (people/me) |\n| `gog_people_get` | Get a People profile by resource name |\n| `gog_people_search` | Search the Workspace directory (covers internal users, unlike contacts search) |\n| `gog_people_relations` | Get relations (manager, reports) for a user |\n| `gog_people_raw` | Dump the raw People API response as JSON |\n\n## License\n\nMIT"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"gogcli-mcp-contacts\",\n  \"version\": \"4.7.0\",\n  \"publishedAt\": 1791380358568\n}"},{"path":"CHANGELOG.md","content":"# Changelog\n\n## [2.1.0](https://github.com/chrischall/gogcli-mcp/compare/v2.0.13...v2.1.0) (2026-05-25)\n\n\n### Refactor\n\n* aggressive cleanup pass (audit findings) ([e635b39](https://github.com/chrischall/gogcli-mcp/commit/e635b391cf611e9c102a422ffbce5ebe28687b80))\n* rebalance base vs sub-package tool split (120 -&gt; 84 base) ([1074953](https://github.com/chrischall/gogcli-mcp/commit/1074953833fc4766e85cc0b28cbcc08834f8dc47))\n* review-pass cleanup (enums, shared schemas, test harness) ([ea851de](https://github.com/chrischall/gogcli-mcp/commit/ea851deb30b9cfef3f07ed506a011fc363b34018))\n\n\n### Documentation\n\n* update gogcli repo URLs to openclaw/gogcli (was steipete/gogcli) ([951a181](https://github.com/chrischall/gogcli-mcp/commit/951a1818ebc269f203aee723ccbea32c13817d8b))"},{"path":"skill-card.md","content":"## Description:\n\nHelps agents search and manage Google Contacts and look up Google Workspace directory profiles and relationships.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nPeople using an agent with an authorized Google account can find personal contacts, search a Workspace directory, inspect profiles and relationships, and manage contacts when needed.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Access to personal contacts and Workspace profiles may expose sensitive personal information.\n\nMitigation: Use a narrowly scoped Google account and enable GOG_READONLY=1 unless contact changes are needed.\n\nRisk: Additional tools can delete or change contacts, including actions without enforced confirmation.\n\nMitigation: Review agent actions involving delete, dedupe, batch update, export, or run tools before allowing them.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/chrischall/skills/gogcli-mcp-contacts)\n- [gogcli documentation](https://github.com/openclaw/gogcli)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Files]\n\n**Output Format:** [Contact and directory results as text or JSON; contact exports as vCard files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires an authenticated Google account; available data depends on account permissions.]\n\n## Skill Version(s):\n\n4.7.0 (source: server release, package.json, manifest.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1220,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:00:21.387Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:36:23.992Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}