# Getfly CRM MCP by usefulapi (remote · getfly-crm.usefulapi.io)

MCP server for Getfly CRM — customers, opportunities, orders, tickets and tasks.

- Trust score: 18/100 (low)
- Change this week: −46
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-07

## Components

- remote · `getfly-crm.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.md), [page](https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm)

## Channel facts

- Endpoint: `https://getfly-crm.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.7.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-11-07.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - 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.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Getfly CRM MCP by usefulapi server?

Getfly CRM MCP by usefulapi is a hosted endpoint at https://getfly-crm.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-getfly-crm 'https://getfly-crm.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-getfly-crm": {
      "url": "https://getfly-crm.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

```yaml
mcp_servers:
  io-usefulapi-getfly-crm:
    url: "https://getfly-crm.usefulapi.io/mcp"
```

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-getfly-crm": {
      "type": "http",
      "url": "https://getfly-crm.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-11-06 (score 18, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-11-02 (score 18, −46)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 64, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 64)

First indexed and scored.

## MCP tools (29)

### `getfly_list_users` (~312 tokens)

List users

List the Getfly CRM users (employees): user id, name, department, email, phone. Use the user_name (login name) for the recipient/manager arguments of the create tools. Filters: user_id, contact_name, email, contact_mobile, valid (1 = active users). GET /api/v6.1/users.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_get_user` (~95 tokens)

Get user

One user by id or by login name (exactly one of user_id and user_username). GET /api/v6.1/user.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `user_id` (integer): User id (from getfly_list_users).
- `user_username` (string): User login name.

### `getfly_list_accounts` (~345 tokens)

List customers

List customers (accounts, i.e. companies or individuals) with code, name, phone, email, address, type, source, relationship, manager, total revenue and contacts. Filters: id, account_code, account_name, phone_office, email, account_type, account_source, relation_id, industry, billing_address_street, created_at, updated_at (gte/lte/between), account_manager (user id), sale_order_status. Newest first. GET /api/v6/accounts.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_get_account` (~111 tokens)

Get customer

One customer by its customer code (account_code, e.g. KH/2025/000001): full profile with contacts, custom fields, type, source, industry, manager and revenue. GET /api/v6.1/account?account_code=.

Input parameters:

- `account_code` (string, required): Customer code (account_code), from getfly_list_accounts.
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.

### `getfly_create_account` (~327 tokens)

Create customer

WRITE: Create a new customer (account) in Getfly CRM. The customer code must be unique (leave it out to let Getfly generate one). Type, source, industry, relationship, country, province, district and ward are given by NAME and must match the names configured in Getfly. Optionally adds one primary contact. Creating records may trigger the workflows and notifications set up in the CRM. POST /api/v6.1/account.

Input parameters:

- `account_code` (string): Unique customer code. Optional.
- `account_manager_username` (string): Login name of the managing user (getfly_list_users → user_name).
- `account_name` (string, required): Customer name (company or person).
- `account_source_names` (array): Customer source names.
- `account_type_names` (array): Customer type names.
- `billing_address_street` (string): Street address.
- `birthday` (string): Birthday or founding date, yyyy-mm-dd.
- `contact` (object): One primary contact person.
- `country_name` (string)
- `custom_fields` (object): Custom field values by field key.
- `description` (string)
- `district_name` (string)
- `email` (string)
- `industry_names` (array): Industry names.
- `phone_office` (string): Office phone number.
- `province_name` (string)
- `relation_name` (string): Relationship name (e.g. New customer).
- `sic_code` (string): Tax code.
- `ward_name` (string)
- `website` (string)

### `getfly_update_account` (~242 tokens)

Update customer

WRITE: Update fields of an existing customer, found by its current customer code. Send only the fields to change. Names (relationship, country, province...) must match those configured in Getfly. Contacts and the type/source/industry lists are not editable here. PUT /api/v6.1/account.

Input parameters:

- `account_code` (string): New customer code, only to rename the code.
- `account_manager_username` (string): Login name of the new managing user.
- `account_name` (string)
- `billing_address_street` (string)
- `birthday` (string): yyyy-mm-dd.
- `country_name` (string)
- `current_account_code` (string, required): The customer's current code (account_code).
- `custom_fields` (object): Custom field values by field key.
- `description` (string)
- `district_name` (string)
- `email` (string)
- `phone_office` (string)
- `province_name` (string)
- `relation_name` (string)
- `sic_code` (string): Tax code.
- `ward_name` (string)
- `website` (string)

### `getfly_list_campaigns` (~83 tokens)

List campaigns

List sales campaigns (opportunity pipelines): campaign code and name, responsible user, lock state, related users and the pipeline stages (status ids and names). GET /api/v6.1/campaigns.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.

### `getfly_get_campaign_stages` (~68 tokens)

Get campaign stages

The pipeline stages of one campaign (status id, name and how many opportunities are in each). Pass exactly one of campaign_id and campaign_code. GET /api/v6.1/campaign/status.

Input parameters:

- `campaign_code` (string)
- `campaign_id` (integer)

### `getfly_list_opportunities` (~312 tokens)

List opportunities

List sales opportunities (deals in a campaign pipeline) with code, name, stage, probability, handler, customer and campaign. Filter by campaign with the campaign_code argument. GET /api/v6.1/opportunities.

Input parameters:

- `campaign_code` (string): Only opportunities of this campaign (campaign code from getfly_list_campaigns).
- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_get_opportunity` (~88 tokens)

Get opportunity

One opportunity by its code (e.g. CH2284): stage, probability, handler, customer and campaign. GET /api/v6.1/opportunity.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `opportunity_code` (string, required): Opportunity code (opportunity_code).

### `getfly_list_opportunity_comments` (~174 tokens)

List opportunity comments

The discussion (comments) on an opportunity: author, text and time. GET /api/v6.1/opportunity/{id}/comments.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `opportunity_id` (integer, required): Opportunity id (the numeric id, not the code).
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_create_opportunity` (~184 tokens)

Create opportunity

WRITE: Create a sales opportunity in a campaign for a customer and assign it to a user. Creates (or links) the customer and contact from the details given. The assigned user and the campaign rules may be notified by Getfly. POST /api/v6.1/opportunity.

Input parameters:

- `account_code` (string): Existing customer code, if the customer already exists.
- `account_email` (string)
- `account_name` (string, required): Customer name.
- `account_phone` (string, required): Customer phone number.
- `campaign_code` (string, required): Campaign code (getfly_list_campaigns).
- `contact_email` (string)
- `contact_name` (string, required): Contact person name.
- `contact_phone` (string, required): Contact phone number.
- `recipient_username` (string, required): Login name of the user who handles it (getfly_list_users → user_name).

### `getfly_move_opportunity_stage` (~170 tokens)

Move opportunity to a pipeline stage

WRITE: Move an opportunity to another stage of its campaign pipeline, without changing anything else. Identify the opportunity by code (or id) and the campaign by code (or id); the new stage by name (or status id) from getfly_get_campaign_stages. Won/lost/cancelled results are not set here. PUT /api/v6.1/opportunity/stage.

Input parameters:

- `campaign_code` (string): Campaign code. Use this or campaign_id.
- `campaign_id` (integer)
- `opportunity_code` (string): Opportunity code. Use this or opportunity_id.
- `opportunity_id` (integer)
- `opportunity_status` (integer): New stage (status) id.
- `opportunity_status_name` (string): New stage name. Use this or opportunity_status.

### `getfly_add_opportunity_comment` (~97 tokens)

Add opportunity comment

WRITE: Post a comment in the discussion of an opportunity, as the given user. Other users following the opportunity may be notified. POST /api/v6.1/opportunity/{id}/comments.

Input parameters:

- `content` (string, required): Comment text.
- `opportunity_id` (integer, required): Opportunity id (the numeric id, not the code).
- `user_id` (integer, required): User id posting the comment (getfly_list_users).

### `getfly_list_products` (~162 tokens)

List products

List products and services with code, name, category, unit, retail/wholesale/online price, sale price, VAT and dates. GET /api/v6.1/products.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_get_product` (~89 tokens)

Get product

One product by its code (e.g. SP.00192): prices, unit, category, VAT, variants and custom fields. GET /api/v6.1/product.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `product_code` (string, required): Product code (product_code).

### `getfly_list_sale_orders` (~370 tokens)

List sales orders

List sales orders with code, customer, amounts, discount, VAT, status, payment status, assigned user and line items. Filters: id, order_date, created_at, updated_at (eq, gte, lte, between). Newest first. GET /api/v6.1/sale_orders.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `order_date_from` (string): Orders dated on or after this day, yyyy-mm-dd.
- `order_date_to` (string): Orders dated on or before this day, yyyy-mm-dd.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.
- `updated_since` (string): Orders updated at or after this time, yyyy-mm-dd hh:mm:ss.

### `getfly_get_sale_order` (~110 tokens)

Get sales order

One sales order by its order code: status, payment status, amounts, customer, line items, shipping info and custom fields. Add payment_periods to fields to include the payment schedule. GET /api/v6.1/sale_order.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `order_code` (string, required): Order code (order_code), from getfly_list_sale_orders.

### `getfly_list_tickets` (~272 tokens)

List support tickets

List support tickets with code, title, content, category, customer and custom fields. GET /api/v6.1/tickets.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

### `getfly_get_ticket` (~78 tokens)

Get support ticket

One support ticket by its ticket code. GET /api/v6.1/ticket.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `ticket_code` (string, required): Ticket code (ticket_code), from getfly_list_tickets.

### `getfly_list_ticket_comments` (~174 tokens)

List ticket comments

The discussion (comments) on a support ticket: author, text and time. GET /api/v6.1/ticket/{id}/comments.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.
- `ticket_id` (integer, required): Ticket id (the numeric id, not the code).

### `getfly_list_ticket_categories` (~42 tokens)

List ticket categories

The support ticket categories (id and name). Use a name as cate_name when creating a ticket. GET /api/v6.1/ticket/categories.

### `getfly_list_ticket_statuses` (~43 tokens)

List ticket statuses

The support ticket statuses (id and name). Use a name as status_name when creating a ticket. GET /api/v6.1/ticket/status.

### `getfly_create_ticket` (~177 tokens)

Create support ticket

WRITE: Create a support ticket, optionally for a customer. Category and status are given by NAME and must match the names configured in Getfly (getfly_list_ticket_categories, getfly_list_ticket_statuses). The content may contain HTML. Getfly may notify the support team. POST /api/v6.1/ticket.

Input parameters:

- `account_code` (string): Customer code.
- `account_email` (string): Customer email.
- `cate_name` (string): Category name.
- `contact_name` (string): Contact person name.
- `emergency_phone` (string): Emergency contact phone.
- `expected_at` (string): Expected resolution date, yyyy-mm-dd.
- `status_name` (string): Initial status name.
- `ticket_content` (string, required): Ticket text (HTML allowed).
- `ticket_title` (string, required): Short title.

### `getfly_list_tasks` (~113 tokens)

List tasks

List tasks with code, name, start/end time, status, progress, assignee, project and related customers. GET /api/v6.1/tasks.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.

### `getfly_get_task` (~89 tokens)

Get task

One task by its task code: status, progress, assignee, project, dates and custom fields. GET /api/v6.1/task.

Input parameters:

- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `task_code` (string, required): Task code (task_code), from getfly_list_tasks.

### `getfly_create_task` (~231 tokens)

Create task

WRITE: Create a task, optionally in a project, assigned to a user and linked to a customer. Project and task type are given by NAME and must exist in Getfly; users by login name. The assignee may be notified by Getfly. POST /api/v6.1/task.

Input parameters:

- `account_code` (string): Code of a customer to link to the task.
- `project_name` (string): Project name (must exist).
- `related_users` (array): Login names of related users.
- `task_code` (string): Unique task code. Optional.
- `task_description` (string): Description (HTML allowed).
- `task_end_date` (string): End, yyyy-mm-dd hh:mm:ss.
- `task_name` (string, required): Task name.
- `task_parent_code` (string): Code of the parent task.
- `task_receiver_username` (string): Login name of the assignee (getfly_list_users → user_name).
- `task_start_date` (string): Start, yyyy-mm-dd hh:mm:ss.
- `task_type_name` (string): Task type name.

### `getfly_complete_task` (~47 tokens)

Complete task

WRITE: Mark a task as completed, by its task code. POST /api/v6.1/task/complete.

Input parameters:

- `task_code` (string, required): Task code (task_code).

### `getfly_list_funds` (~280 tokens)

List funds

List the cash/bank funds (accounts for receipts and payments) with id, name, parent, level and financial account. GET /api/v6.1/funds.

Input parameters:

- `direction` (string): Sort direction, used with sort (default asc).
- `fields` (string): Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.
- `filters` (object): Filters as { "field": value } or { "field:operator": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…
- `limit` (integer): Records to return, 1-100 (default 20).
- `offset` (integer): Records to skip (default 0). Pass the previous reply's next_offset.
- `sort` (string): Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.

## Diagnostics

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

## Score history

- 2026-11-07: 18
- 2026-11-06: 18
- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 64
- 2026-10-31: 64

## Common questions

### What is the Getfly CRM MCP by usefulapi server?

Getfly CRM MCP by usefulapi is listed in the public MCP registry as io.usefulapi/getfly-crm. MCP server for Getfly CRM, customers, opportunities, orders, tickets and tasks. This page covers its hosted endpoint (https://getfly-crm.usefulapi.io/mcp).

### Is the Getfly CRM MCP by usefulapi server safe to use?

Getfly CRM MCP by usefulapi scores 18 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 Getfly CRM MCP by usefulapi server expose?

Getfly CRM MCP by usefulapi exposes 29 tools: getfly_list_users, getfly_get_user, getfly_list_accounts, getfly_get_account, getfly_create_account, and 24 more. Their descriptions and schemas cost roughly 4,885 tokens of context every time the server is loaded.

### Does the Getfly CRM MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Getfly CRM MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Getfly CRM MCP by usefulapi server still maintained?

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

### What did VerifyMCP test on the Getfly CRM MCP by usefulapi server?

VerifyMCP ran 4 checks on Getfly CRM MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about Getfly CRM MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://getfly-crm.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/getfly-crm/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm
