# Pobuca Connect MCP by usefulapi (remote · pobuca-connect.usefulapi.io)

Read and update Pobuca Connect contacts and organizations; look up teams and custom fields.

- Trust score: 60/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-25

## Components

- remote · `pobuca-connect.usefulapi.io`: 60/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect.md), [page](https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect)

## Channel facts

- Endpoint: `https://pobuca-connect.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.1.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-25.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3899 tokens (~229/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 85/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 56% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Pobuca Connect MCP by usefulapi server?

Pobuca Connect MCP by usefulapi is a hosted endpoint at https://pobuca-connect.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-pobuca-connect 'https://pobuca-connect.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-pobuca-connect": {
      "url": "https://pobuca-connect.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-pobuca-connect": {
      "type": "http",
      "url": "https://pobuca-connect.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-pobuca-connect]
url = "https://pobuca-connect.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-pobuca-connect": {
      "type": "remote",
      "url": "https://pobuca-connect.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-pobuca-connect --url 'https://pobuca-connect.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-pobuca-connect:
    url: "https://pobuca-connect.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-pobuca-connect": {
      "Transport": "http",
      "Url": "https://pobuca-connect.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-pobuca-connect -t streamable-http -u 'https://pobuca-connect.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-pobuca-connect": {
      "type": "http",
      "url": "https://pobuca-connect.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-25 (score 60, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.1.0 → 1.1.3

### 2026-10-24 (score 60)

First indexed and scored.

## MCP tools (17)

### `pobuca_get_me` (~41 tokens)

Get current user

The Pobuca Connect user this API key acts as: id, first name, last name and email. GET /api/v1/Users/Me.

### `pobuca_list_contacts` (~230 tokens)

List contacts

List contacts (people) with names, phones, emails, addresses, organization, team, tags and custom fields. Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. To find recently changed contacts use $filter like "updatedat ge 2026-10-01T00:00:00Z". GET /api/v1/Contacts.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_get_contact` (~59 tokens)

Get contact

One contact by id, with all phone numbers, emails, addresses, organization, team, tags and custom fields. GET /api/v1/Contacts/{id}.

Input parameters:

- `contact_id` (string, required): Contact id (from pobuca_list_contacts).

### `pobuca_create_contact` (~466 tokens)

Create contact

WRITE: create a new contact in the Pobuca Connect address book. Needs at least a first name, last name or email. Not idempotent: calling it twice creates two contacts, so search with pobuca_list_contacts first. POST /api/v1/Contacts.

Input parameters:

- `allowEmails` (boolean): Consent flag: may this contact be emailed.
- `allowPhones` (boolean): Consent flag: may this contact be phoned.
- `allowSms` (boolean): Consent flag: may this contact be sent SMS.
- `birthday` (string): Birthday as an ISO date, e.g. 1985-04-23.
- `comments` (string): Free-text notes on the contact.
- `customFields` (array): Custom field values (see pobuca_list_custom_fields).
- `departmentId` (string): Id of the department (from pobuca_list_departments).
- `email` (string): Work email.
- `facebook` (string)
- `firstName` (string)
- `gender` (string)
- `homeCity` (string)
- `homePhone` (string)
- `homePostalCode` (string)
- `homeState` (string)
- `homeStreet` (string)
- `jobTitle` (string)
- `lastName` (string)
- `linkedin` (string)
- `middleName` (string)
- `mobilePhone` (string)
- `nickname` (string)
- `organizationId` (string): Id of the organization this contact belongs to (from pobuca_list_organizations).
- `otherEmail` (string)
- `personalEmail` (string)
- `suffix` (string)
- `tags` (array): Tags (replaces the existing tags on update).
- `teamId` (string): Id of the team that owns this contact (from pobuca_list_teams).
- `titleSalutation` (string): Salutation, e.g. Mr, Ms, Dr.
- `twitter` (string)
- `website` (string)
- `workCity` (string)
- `workPhone` (string)
- `workPostalCode` (string)
- `workState` (string)
- `workStreet` (string)

### `pobuca_update_contact` (~480 tokens)

Update contact

WRITE: change fields of an existing contact; only the fields you pass are sent. Overwrites the previous values (tags and customFields are replaced as given). Look the contact up first and confirm the right one. PATCH /api/v1/Contacts/{id}.

Input parameters:

- `allowEmails` (boolean): Consent flag: may this contact be emailed.
- `allowPhones` (boolean): Consent flag: may this contact be phoned.
- `allowSms` (boolean): Consent flag: may this contact be sent SMS.
- `birthday` (string): Birthday as an ISO date, e.g. 1985-04-23.
- `comments` (string): Free-text notes on the contact.
- `contact_id` (string, required): Contact id (from pobuca_list_contacts).
- `customFields` (array): Custom field values (see pobuca_list_custom_fields).
- `departmentId` (string): Id of the department (from pobuca_list_departments).
- `email` (string): Work email.
- `facebook` (string)
- `firstName` (string)
- `gender` (string)
- `homeCity` (string)
- `homePhone` (string)
- `homePostalCode` (string)
- `homeState` (string)
- `homeStreet` (string)
- `jobTitle` (string)
- `lastName` (string)
- `linkedin` (string)
- `middleName` (string)
- `mobilePhone` (string)
- `nickname` (string)
- `organizationId` (string): Id of the organization this contact belongs to (from pobuca_list_organizations).
- `otherEmail` (string)
- `personalEmail` (string)
- `suffix` (string)
- `tags` (array): Tags (replaces the existing tags on update).
- `teamId` (string): Id of the team that owns this contact (from pobuca_list_teams).
- `titleSalutation` (string): Salutation, e.g. Mr, Ms, Dr.
- `twitter` (string)
- `website` (string)
- `workCity` (string)
- `workPhone` (string)
- `workPostalCode` (string)
- `workState` (string)
- `workStreet` (string)

### `pobuca_list_organizations` (~206 tokens)

List organizations

List organizations (companies) with phone, email, website, billing and shipping addresses, type, industry, tags and custom fields. Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/Organizations.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_get_organization` (~58 tokens)

Get organization

One organization by id, with addresses, type, industry, primary contact, tags and custom fields. GET /api/v1/Organizations/{id}.

Input parameters:

- `organization_id` (string, required): Organization id (from pobuca_list_organizations).

### `pobuca_create_organization` (~315 tokens)

Create organization

WRITE: create a new organization (company) in Pobuca Connect. Not idempotent: calling it twice creates two organizations, so search with pobuca_list_organizations first. POST /api/v1/Organizations.

Input parameters:

- `allowEmails` (boolean): Consent flag: may this organization be emailed.
- `allowPhones` (boolean): Consent flag: may this organization be phoned.
- `allowSms` (boolean): Consent flag: may this organization be sent SMS.
- `billingCity` (string)
- `billingPostalCode` (string)
- `billingState` (string)
- `billingStreet` (string)
- `comments` (string): Free-text notes on the organization.
- `customFields` (array): Custom field values (see pobuca_list_custom_fields).
- `email` (string)
- `fax` (string)
- `industryId` (string): Id from pobuca_list_industries.
- `name` (string, required): Organization name.
- `organizationTypeId` (string): Id from pobuca_list_organization_types.
- `phone` (string)
- `primaryContactId` (string): Id of the primary contact (from the matching list tool).
- `profession` (string)
- `shippingCity` (string)
- `shippingPostalCode` (string)
- `shippingState` (string)
- `shippingStreet` (string)
- `tags` (array): Tags (replaces the existing tags on update).
- `website` (string)

### `pobuca_update_organization` (~341 tokens)

Update organization

WRITE: change fields of an existing organization; only the fields you pass are sent. Overwrites the previous values (tags and customFields are replaced as given). Look the organization up first and confirm the right one. PATCH /api/v1/Organizations/{id}.

Input parameters:

- `allowEmails` (boolean): Consent flag: may this organization be emailed.
- `allowPhones` (boolean): Consent flag: may this organization be phoned.
- `allowSms` (boolean): Consent flag: may this organization be sent SMS.
- `billingCity` (string)
- `billingPostalCode` (string)
- `billingState` (string)
- `billingStreet` (string)
- `comments` (string): Free-text notes on the organization.
- `customFields` (array): Custom field values (see pobuca_list_custom_fields).
- `email` (string)
- `fax` (string)
- `industryId` (string): Id from pobuca_list_industries.
- `name` (string): Organization name.
- `organizationTypeId` (string): Id from pobuca_list_organization_types.
- `organization_id` (string, required): Organization id (from pobuca_list_organizations).
- `phone` (string)
- `primaryContactId` (string): Id of the primary contact (from the matching list tool).
- `profession` (string)
- `shippingCity` (string)
- `shippingPostalCode` (string)
- `shippingState` (string)
- `shippingStreet` (string)
- `tags` (array): Tags (replaces the existing tags on update).
- `website` (string)

### `pobuca_list_teams` (~191 tokens)

List teams

List teams (the groups that own and share contacts). Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/Teams.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_get_team` (~42 tokens)

Get team

One team by id. GET /api/v1/Teams/{id}.

Input parameters:

- `team_id` (string, required): Team id (from pobuca_list_teams).

### `pobuca_list_team_members` (~195 tokens)

List team members

List which users belong to which team, with their role in the team. Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/UserTeams.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_list_departments` (~192 tokens)

List departments

List departments (ids for the departmentId of a contact). Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/Departments.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_list_industries` (~194 tokens)

List industries

List industries (ids for the industryId of an organization). Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/Industries.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_list_organization_types` (~196 tokens)

List organization types

List organization types (ids for the organizationTypeId of an organization). Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/OrganizationTypes.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_list_countries` (~186 tokens)

List countries

List countries with their codes. Paged: 50 per call at most; pass next_skip as skip for the next page. Supports OData $filter and $orderby. GET /api/v1/Countries.

Input parameters:

- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

### `pobuca_list_custom_fields` (~226 tokens)

List custom fields

List the custom fields defined for contacts, organizations ('Group') or users, with type (Text or Dropdown) and, for dropdowns, the available options. Use the ids and option ids in the customFields of a contact or organization. GET /api/v1/CustomFields/{entityType}.

Input parameters:

- `entity_type` (string, required): Which records the fields belong to: Contact, Group (organizations) or User.
- `filter` (string): OData $filter expression, e.g. "updatedat ge 2026-10-01T00:00:00Z" or "startswith(lastname,'Pap')". Field names are case-insensitive.
- `include_deleted` (boolean): Also return deleted records (default false).
- `orderby` (string): OData $orderby, e.g. "lastname asc" or "updatedat desc".
- `skip` (integer): Results to skip. Pass the previous reply's next_skip to get the next page.
- `top` (integer): Results to return, 1-50 (default 50).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect#diagnostics

## Score history

- 2026-10-25: 60
- 2026-10-24: 60

## Common questions

### What is the Pobuca Connect MCP by usefulapi server?

Pobuca Connect MCP by usefulapi is listed in the public MCP registry as io.usefulapi/pobuca-connect. Read and update Pobuca Connect contacts and organizations; look up teams and custom fields. This page covers its hosted endpoint (https://pobuca-connect.usefulapi.io/mcp).

### Is the Pobuca Connect MCP by usefulapi server safe to use?

Pobuca Connect MCP by usefulapi scores 60 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Pobuca Connect MCP by usefulapi server expose?

Pobuca Connect MCP by usefulapi exposes 17 tools: pobuca_get_me, pobuca_list_contacts, pobuca_get_contact, pobuca_create_contact, pobuca_update_contact, and 12 more. Their descriptions and schemas cost roughly 3,618 tokens of context every time the server is loaded.

### Does the Pobuca Connect MCP by usefulapi server require authentication?

Yes. Pobuca Connect MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Pobuca Connect MCP by usefulapi server still maintained?

Pobuca Connect MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://pobuca-connect.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/pobuca-connect/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-pobuca-connect/pobuca-connect
