MewCP Google People MCP
About
Hosted, Stateless & Multitenant Google People MCP server enables AI assistants to access, manage, and organize contacts and profile information through Google People API.
Details
- Author
- asthetech
- Categories
- Developer Tools, Other, Communication, Productivity
Jump to
Setup
Install MewCP Google People MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/asthetech/mewcp-google-people
Follow the installation instructions in the repository README, then restart your MCP client.
Search, manage, and organize your Google Contacts with AI.
A Model Context Protocol (MCP) server that exposes Google People API for reading, creating, updating, and deleting contacts and contact groups.
The Google People MCP Server provides full Google Contacts management capabilities:
- Create, read, update, delete, and search personal contacts
- Manage contact groups — list, create, update, or delete them
- Access and promote "Other Contacts" auto-saved by Google services
- Looking up contact details and email addresses via AI assistants
- Automating contact list maintenance and group organization
- Copying frequently-interacted contacts from "Other Contacts" into your main list
Fetches a contact by resource name, returning only the fields specified.
- resource_name (string, required) — Resource name of the person (e.g. "people/me" or "people/c12345") - person_fields (string, required) — Comma-separated list of fields to return (e.g. "names,emailAddresses,phoneNumbers")
{ "resourceName": "people/c12345", "names": [{ "displayName": "Jane Doe" }], "emailAddresses": [{ "value": "jane@example.com" }] }
Returns a paginated list of the authenticated user's contacts.
- resource_name (string, required) — Resource name of the person to list connections for (use "people/me" for the authenticated user) - person_fields (string, required) — Comma-separated list of fields to return (e.g. "names,emailAddresses") - page_size (integer, optional) — Maximum number of connections to return - page_token (string, optional) — Page token from a previous list request for pagination
{ "connections": [{ "resourceName": "people/c12345", "names": [...] }], "nextPageToken": "...", "totalItems": 42 }
Creates a new contact from a JSON person object.
- person (string, required) — JSON string representing the person to create (e.g. '{"names":[{"givenName":"Jane","familyName":"Doe"}],"emailAddresses":[{"value":"jane@example.com"}]}')
{ "resourceName": "people/c12345", "names": [{ "displayName": "Jane Doe" }] }
Updates specific fields of an existing contact.
- resource_name (string, required) — Resource name of the contact to update (e.g. "people/c12345") - update_person_fields (string, required) — Comma-separated list of fields being updated (e.g. "names,emailAddresses") - person (string, required) — JSON string with the updated person data
{ "resourceName": "people/c12345", "names": [{ "displayName": "Jane Smith" }] }
Permanently deletes a contact by resource name.
- resource_name (string, required) — Resource name of the contact to delete (e.g. "people/c12345")
Searches across the user's contacts using a text query.
- query (string, required) — Text to search for (matches names, emails, phone numbers, etc.) - read_mask (string, required) — Comma-separated list of fields to return in results (e.g. "names,emailAddresses")
{ "results": [ { "person": { "resourceName": "people/c12345", "names": [...] } } ] }
Returns all contact groups belonging to the authenticated user.
- page_size (integer, optional) — Maximum number of groups to return - page_token (string, optional) — Page token from a previous list request for pagination
{ "contactGroups": [{ "resourceName": "contactGroups/myContacts", "name": "myContacts" }], "nextPageToken": "..." }
Fetches a single contact group by resource name.
- resource_name (string, required) — Resource name of the contact group (e.g. "contactGroups/abc123")
{ "resourceName": "contactGroups/abc123", "name": "Coworkers", "memberCount": 5 }
Creates a new contact group from a JSON contact group object.
- contact_group (string, required) — JSON string representing the group to create (e.g. '{"contactGroup":{"name":"Team"}}')
{ "resourceName": "contactGroups/abc123", "name": "Team" }
Updates the name or metadata of an existing contact group.
- resource_name (string, required) — Resource name of the group to update (e.g. "contactGroups/abc123") - contact_group (string, required) — JSON string with the updated contact group data
{ "resourceName": "contactGroups/abc123", "name": "Updated Team" }
Permanently deletes a contact group by resource name.
- resource_name (string, required) — Resource name of the group to delete (e.g. "contactGroups/abc123")
Fetches details for multiple contact groups in a single request.
- resource_names (string, required) — Comma-separated list of contact group resource names (e.g. "contactGroups/abc,contactGroups/def")
{ "responses": [ { "contactGroup": { "resourceName": "contactGroups/abc", "name": "Team" } } ] }
Returns "Other Contacts" — people automatically saved by Google from interactions (emails, calls, etc.).
- read_mask (string, required) — Comma-separated list of fields to return (e.g. "names,emailAddresses") - page_size (integer, optional) — Maximum number of contacts to return - page_token (string, optional) — Page token from a previous list request for pagination
{ "otherContacts": [{ "resourceName": "otherContacts/c99999", "names": [...] }], "nextPageToken": "..." }
Searches the "Other Contacts" list using a text query.
- query (string, required) — Text to search for - read_mask (string, required) — Comma-separated list of fields to return in results
{ "results": [ { "person": { "resourceName": "otherContacts/c99999", "names": [...] } } ] }
Promotes a contact from "Other Contacts" into the user's main "My Contacts" group.
- resource_name (string, required) — Resource name of the other contact to copy (e.g. "otherContacts/c99999") - copy_mask (string, required) — Comma-separated list of fields to copy (e.g. "names,emailAddresses,phoneNumbers")
{ "resourceName": "people/c12345", "names": [{ "displayName": "Jane Doe" }] }
- resource_name— Identifies a specific person or group. Formats:
- "people/me"— the authenticated user
- "people/c{id}"— a specific contact
- "contactGroups/{id}"— a contact group
- "otherContacts/c{id}"— an other contact
person_fields / read_mask— comma-separated, no spaces:
names,emailAddresses,phoneNumbers,addresses,organizations,birthdays,photos
update_person_fields— must list every field you are changing:
copy_mask— fields to carry over when promoting an other contact:
{ "names": [{ "givenName": "Jane", "familyName": "Doe" }], "emailAddresses": [{ "value": "jane@example.com" }], "phoneNumbers": [{ "value": "+1-555-0100" }] }
- Cause:OAuth token not provided in request headers or incorrect format
- Solution:
- VerifyAuthorization: Bearer YOUR_API_KEYandX-Mewcp-Credential-Id: CREDENTIAL-IDheaders are present
- Check your credential is active in your MewCP account
- Cause:API calls have exceeded your request limits
- Solution:
- Check credit usage in your Curious Layer dashboard
- Upgrade to a paid plan or add credits for higher limits
- Contact support for credit adjustments
- Cause:No Google account linked to your MewCP credential
- Solution:
- Go toCredentialsin your MewCP dashboard
- Connect your Google account via OAuth
- Retry the request with the correctX-Mewcp-Credential-Idheader
- Cause:JSON payload is invalid or missing required fields
- Solution:
- Validate JSON syntax before sending (especiallypersonandcontact_groupparameters)
- Ensure all required tool parameters are included
- Check parameter types match expected values
- Cause:Incorrect server name in the API endpoint
- Solution:
- Verify endpoint format:{server-name}/mcp/{tool-name}
- Use correct server name from documentation
- Check available servers in your Curious Layer account
- Cause:Upstream Google People API returned an error
- Solution:
- Check Google Workspace service status atGoogle Status Dashboard
- Verify your Google account has the required Contacts permissions (scope:contacts,contacts.readonly)
- Review the error message for specific details
- Google People API Documentation— Official API reference
- Google People API Reference— Complete endpoint reference
- FastMCP Docs— FastMCP specification
- FastMCP Credentials— FastMCP Credentials package for credential handling
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Control your CRM and pull informations from emails, meetings, linkedin, telegram & whatsapp+
A read-only MCP server for Google Contacts, powered by the CData JDBC Driver.
An MCP server for interacting with Google Workspace services like Gmail and Calendar.
GReminders gives Claude secure access to your firm's scheduling, calendar, CRM, and client data. Claude can book and manage meetings, retrieve information from your CRM, answer questions about clients, financial information and firm data, and help advisors stay organized by bringing the right information together in one place.
Interact with Google products, including Gmail and Calendar.
A comprehensive MCP server for managing Google Workspace services like Calendar, Contacts, and Gmail using OAuth2 authentication.
An MCP server with built-in Feishu OAuth authentication, deployable on Cloudflare Workers.
An MCP server with built-in Feishu OAuth authentication, deployable on Cloudflare Workers.
Hosted, Stateless & Multitenant Google Business Profile MCP server enables AI assistants to manage business listings, reviews, locations, and customer interactions through Google Business Profile.
Hosted, Stateless & Multitenant Google Calendar MCP server enables AI assistants to manage calendars, events, schedules, and availability through Google Calendar.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





