# Gripp MCP by usefulapi (remote · gripp.usefulapi.io)

Read projects, invoices, hours and contacts; register hours, create tasks in Gripp.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

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

## Channel facts

- Endpoint: `https://gripp.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.5.2`

## 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-05.

- **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 Gripp MCP by usefulapi server?

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

### Cursor

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

### VS Code

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

### Codex

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

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-gripp": {
      "type": "http",
      "url": "https://gripp.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-02 (score 18, −47)

- [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 65, +1)

- [functional improvement] Stability: unverified → 0.03

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

First indexed and scored.

## MCP tools (14)

### `gripp_list_companies` (~150 tokens)

List companies

List companies in Gripp. Companies (customers, suppliers, prospects) with address, VAT/COC numbers, customer number and active flag. Supports filters, paging (max 250 per call) and ordering. Gripp API: company.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_contacts` (~142 tokens)

List contacts

List contacts in Gripp. Contact persons with name, e-mail, phone, function and the company id. Supports filters, paging (max 250 per call) and ordering. Gripp API: contact.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_projects` (~146 tokens)

List projects

List projects in Gripp. Projects with name, number, phase, company, account manager, dates, totals and archived flag. Supports filters, paging (max 250 per call) and ordering. Gripp API: project.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_tasks` (~142 tokens)

List tasks

List tasks in Gripp. Tasks with description, phase, deadline, estimated hours, company and completion state. Supports filters, paging (max 250 per call) and ordering. Gripp API: task.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_hours` (~144 tokens)

List hours

List hours in Gripp. Time registrations (hours) with date, amount, employee, task, status and description. Supports filters, paging (max 250 per call) and ordering. Gripp API: hour.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_invoices` (~146 tokens)

List invoices

List invoices in Gripp. Sales invoices with number, date, status, company, totals, amount paid and open amount. Supports filters, paging (max 250 per call) and ordering. Gripp API: invoice.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_offers` (~147 tokens)

List offers

List offers in Gripp. Quotes (offers) with number, name, date, phase, company, totals and acceptance status. Supports filters, paging (max 250 per call) and ordering. Gripp API: offer.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_employees` (~143 tokens)

List employees

List employees in Gripp. Employees with name, e-mail, function, department, role and active flag. Supports filters, paging (max 250 per call) and ordering. Gripp API: employee.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_list_tags` (~141 tokens)

List tags

List tags in Gripp. Tags that Gripp uses to label companies, contacts, projects and invoices. Supports filters, paging (max 250 per call) and ordering. Gripp API: tag.get.

Input parameters:

- `direction` (string): Sort direction (default asc).
- `filters` (array): Optional filters, all combined with AND. Custom fields cannot be filtered.
- `first_result` (integer): Offset of the first row (default 0).
- `max_results` (integer): Rows per page (default 50, maximum 250).
- `order_by` (string): Field to sort by, for example company.id. Default: id.

### `gripp_get_record` (~78 tokens)

Get one record

Get one Gripp record by its numeric id, for companies, contacts, projects, tasks, hours, invoices, offers, employees or invoice lines. Gripp API: <entity>.getone.

Input parameters:

- `entity` (string, required): The record type.
- `id` (integer, required): The numeric id (from a gripp_list_* tool).

### `gripp_list_invoice_lines` (~96 tokens)

List invoice lines

List invoice lines (description, amount, price, VAT) for one invoice id. Use this to see what an invoice contains. Gripp API: invoiceline.get.

Input parameters:

- `first_result` (integer): Offset of the first row (default 0).
- `invoice_id` (integer, required): The invoice id (from gripp_list_invoices).
- `max_results` (integer): Rows per page (default 50).

### `gripp_create_hour` (~162 tokens)

Register hours

WRITE: register hours on a project (and optionally a task) in Gripp. Creates a new time registration each call; a repeat creates a duplicate. Status CONCEPT keeps it editable. Gripp API: hour.create.

Input parameters:

- `amount` (number, required): Hours worked, for example 1.5.
- `date` (string, required): Date of the work, yyyy-mm-dd.
- `description` (string): What was done.
- `employee` (integer, required): The employee id (from gripp_list_employees).
- `offerprojectbase` (integer, required): The project id (from gripp_list_projects) the hours belong to.
- `status` (string): Default CONCEPT.
- `task` (integer): Optional task id (from gripp_list_tasks).

### `gripp_create_task` (~114 tokens)

Create a task

WRITE: create a task in Gripp. Creates a new task each call; a repeat creates a duplicate. Gripp API: task.create.

Input parameters:

- `company` (integer, required): Company id the task belongs to (from gripp_list_companies).
- `content` (string): Longer task text.
- `deadlinedate` (string): Deadline, yyyy-mm-dd.
- `description` (string, required): Task title.
- `estimatedhours` (number): Estimated hours.
- `preferredemployee` (integer): Employee id to assign.

### `gripp_create_contact` (~105 tokens)

Create a contact

WRITE: create a contact person on a company in Gripp. Creates a new contact each call; a repeat creates a duplicate. Gripp API: contact.create.

Input parameters:

- `company` (integer, required): Company id (from gripp_list_companies).
- `email` (string): E-mail address.
- `firstname` (string): First name.
- `function` (string): Job title.
- `lastname` (string, required): Last name.
- `phone` (string): Phone number.

## Diagnostics

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

## Score history

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

## Common questions

### What is the Gripp MCP by usefulapi server?

Gripp MCP by usefulapi is listed in the public MCP registry as io.usefulapi/gripp. Read projects, invoices, hours and contacts; register hours, create tasks in Gripp. This page covers its hosted endpoint (https://gripp.usefulapi.io/mcp).

### Is the Gripp MCP by usefulapi server safe to use?

Gripp 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 Gripp MCP by usefulapi server expose?

Gripp MCP by usefulapi exposes 14 tools: gripp_list_companies, gripp_list_contacts, gripp_list_projects, gripp_list_tasks, gripp_list_hours, and 9 more. Their descriptions and schemas cost roughly 1,856 tokens of context every time the server is loaded.

### Does the Gripp MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Gripp 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 Gripp MCP by usefulapi server still maintained?

Gripp MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 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://gripp.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/gripp/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-gripp/gripp.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-gripp/gripp.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-gripp/gripp
