Pipeline CRM MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Manage Pipeline CRM deals, people, companies, notes and calendar entries.
30 tools: 9 can delete or cancel things and 21 only read.
Scanned Oct 21, 2026
- Deletes or cancels9Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads21Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http pipeline-crm https://pipeline-crm.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description mentions "credential".
What this check looks forMatched text
description: "The Pipeline CRM user this credential acts as: id, name and whether they are..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
30 tools
Deletes or cancels 9Claude Code: deny
pipelinecrm_add_noteWRITE: log a note (activity) on a deal, person or company.No findings
Why it is in this group
- The name "pipelinecrm_add_note" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: log a note (activity) on a deal, person or company. Pass at least one of deal_id, person_id, company_id. POST /notes.
Annotations the server declares
- title: Add note
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
pipelinecrm_create_calendar_entryWRITE: create a task (CalendarTask, optional due date) or an event (CalendarEvent, start_time and end_time required), optionally tied to a deal, person or company.No findings
Why it is in this group
- The name "pipelinecrm_create_calendar_entry" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a task (CalendarTask, optional due date) or an event (CalendarEvent, start_time and end_time required), optionally tied to a deal, person or company. POST /calendar_entries.
Annotations the server declares
- title: Create task or event
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
pipelinecrm_create_companyWRITE: create a company.No findings
Why it is in this group
- The name "pipelinecrm_create_company" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a company. POST /companies.
Annotations the server declares
- title: Create company
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
pipelinecrm_create_dealWRITE: create a deal.No findings
Why it is in this group
- The name "pipelinecrm_create_deal" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a deal. Give the owner (user id), stage id, value, expected close date and company or primary contact when known; a new company is created from company_name if no company_id is given. No email is sent to the owner. POST /deals.
Annotations the server declares
- title: Create deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
pipelinecrm_create_personWRITE: create a lead or contact.No findings
Why it is in this group
- The name "pipelinecrm_create_person" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a lead or contact. Pass at least a first or last name or an email. No email is sent to the owner. POST /people.
Annotations the server declares
- title: Create person
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
pipelinecrm_update_calendar_entryWRITE: change a task or event; only the fields you pass change.No findings
Why it is in this group
- The name "pipelinecrm_update_calendar_entry" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change a task or event; only the fields you pass change. Pass complete: true to mark a task done. PUT /calendar_entries/{id}.
Annotations the server declares
- title: Update task or event
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
pipelinecrm_update_companyWRITE: change fields of a company; only the fields you pass change.No findings
Why it is in this group
- The name "pipelinecrm_update_company" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change fields of a company; only the fields you pass change. PUT /companies/{id}.
Annotations the server declares
- title: Update company
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
pipelinecrm_update_dealWRITE: change fields of a deal; only the fields you pass change.No findings
Why it is in this group
- The name "pipelinecrm_update_deal" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change fields of a deal; only the fields you pass change. Move it to another stage with stage_id. Setting probability to 100 or 0 closes the deal as won or lost; give won/loss reason ids when you do. Archive with archived: true. No email is sent to a new owner. PUT /deals/{id}.
Annotations the server declares
- title: Update deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
pipelinecrm_update_personWRITE: change fields of a person; only the fields you pass change.No findings
Why it is in this group
- The name "pipelinecrm_update_person" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change fields of a person; only the fields you pass change. Pass type Contact to convert a lead. PUT /people/{id}.
Annotations the server declares
- title: Update person
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 21Claude Code: allow
pipelinecrm_deal_totals_by_stageCount and total value of the deals visible to the user in every deal stage: the pipeline summary.No findings
Why it is in this group
- The description's first verb is "count": a word for reading.
Description, as the server wrote it Count and total value of the deals visible to the user in every deal stage: the pipeline summary. GET /deals/totals_by_stage.
Annotations the server declares
- title: Deal totals by stage
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_calendar_entryOne calendar entry (task or event) by id.No findings
Why it is in this group
- The name "pipelinecrm_get_calendar_entry" says "get": a word for reading.
Description, as the server wrote it One calendar entry (task or event) by id. GET /calendar_entries/{id}.
Annotations the server declares
- title: Get task or event
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_companyOne company by id with address, phones, website, owner, tags and custom fields.No findings
Why it is in this group
- The name "pipelinecrm_get_company" says "get": a word for reading.
Description, as the server wrote it One company by id with address, phones, website, owner, tags and custom fields. GET /companies/{id}.
Annotations the server declares
- title: Get company
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_dealOne deal by id with owner, company, people, stage, status, loss/won reasons, tags, custom fields and the next task.No findings
Why it is in this group
- The name "pipelinecrm_get_deal" says "get": a word for reading.
Description, as the server wrote it One deal by id with owner, company, people, stage, status, loss/won reasons, tags, custom fields and the next task. GET /deals/{id}.
Annotations the server declares
- title: Get deal
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_noteOne note (activity) by id with its content, author, category, associations and comments.No findings
Why it is in this group
- The name "pipelinecrm_get_note" says "get": a word for reading.
Description, as the server wrote it One note (activity) by id with its content, author, category, associations and comments. GET /notes/{id}.
Annotations the server declares
- title: Get note
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_personOne person (lead or contact) by id with all contact details, company, owner, tags and custom fields.No findings
Why it is in this group
- The name "pipelinecrm_get_person" says "get": a word for reading.
Description, as the server wrote it One person (lead or contact) by id with all contact details, company, owner, tags and custom fields. GET /people/{id}.
Annotations the server declares
- title: Get person
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_profileThe Pipeline CRM user this credential acts as: id, name and whether they are an account admin.1 finding
Why it is in this group
- The name "pipelinecrm_get_profile" says "get": a word for reading.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "The Pipeline CRM user this credential acts as: id, name and whether they are..."
Description, as the server wrote it The Pipeline CRM user this credential acts as: id, name and whether they are an account admin. The user's api_key is never returned. GET /profile.
Annotations the server declares
- title: Get my profile
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_get_userOne user of the account by id.No findings
Why it is in this group
- The name "pipelinecrm_get_user" says "get": a word for reading.
Description, as the server wrote it One user of the account by id. The user's api_key is never returned. GET /users/{id}.
Annotations the server declares
- title: Get user
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_calendar_entriesList calendar entries: tasks (a due date) and events (a start and end time) tied to deals, people or companies.No findings
Why it is in this group
- The name "pipelinecrm_list_calendar_entries" says "list": a word for reading.
Description, as the server wrote it List calendar entries: tasks (a due date) and events (a start and end time) tied to deals, people or companies. Filter by kind, owner, a date range, and completed, incomplete or late. GET /calendar_entries.
Annotations the server declares
- title: List tasks and events
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_companiesList or search companies with address, website, phones, owner, tags and pipeline totals.No findings
Why it is in this group
- The name "pipelinecrm_list_companies" says "list": a word for reading.
Description, as the server wrote it List or search companies with address, website, phones, owner, tags and pipeline totals. GET /companies.
Annotations the server declares
- title: List companies
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_company_peopleList the people (leads and contacts) who work at one company.No findings
Why it is in this group
- The name "pipelinecrm_list_company_people" says "list": a word for reading.
Description, as the server wrote it List the people (leads and contacts) who work at one company. GET /companies/{id}/people.
Annotations the server declares
- title: List people at a company
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_deal_notesList the notes (activities) logged on one deal, with author, category and content.No findings
Why it is in this group
- The name "pipelinecrm_list_deal_notes" says "list": a word for reading.
Description, as the server wrote it List the notes (activities) logged on one deal, with author, category and content. GET /deals/{id}/notes.
Annotations the server declares
- title: List notes on a deal
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_deal_pipelinesList the deal pipelines (each has its own stages) with id, name and which one is the default.No findings
Why it is in this group
- The name "pipelinecrm_list_deal_pipelines" says "list": a word for reading.
Description, as the server wrote it List the deal pipelines (each has its own stages) with id, name and which one is the default. GET /admin/deal_pipelines.
Annotations the server declares
- title: List deal pipelines
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_deal_stagesList the deal stages with id, name, default win probability and the pipeline each belongs to.No findings
Why it is in this group
- The name "pipelinecrm_list_deal_stages" says "list": a word for reading.
Description, as the server wrote it List the deal stages with id, name, default win probability and the pipeline each belongs to. Use the ids to filter or move deals. GET /admin/deal_stages.
Annotations the server declares
- title: List deal stages
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_dealsList or search deals with stage, owner, company, primary contact, value, probability and expected close date.No findings
Why it is in this group
- The name "pipelinecrm_list_deals" says "list": a word for reading.
Description, as the server wrote it List or search deals with stage, owner, company, primary contact, value, probability and expected close date. Filter by name, stage, pipeline, status, owner, company, contact, archived flag, value range and created, expected-close, closed or modified dates. Money values come back as decimal strings. GET /deals.
Annotations the server declares
- title: List deals
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_lookupList one set of account lookup values to get ids for filters and writes.No findings
Why it is in this group
- The name "pipelinecrm_list_lookup" says "list": a word for reading.
Description, as the server wrote it List one set of account lookup values to get ids for filters and writes. kind: deal_statuses, deal_loss_reasons, deal_won_reasons, deal_tags, lead_statuses, lead_sources, contact_tags, company_tags, note_categories, event_categories, task_priorities, task_statuses, teams. GET /admin/<kind>.
Annotations the server declares
- title: List lookup values
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_notesList notes (called activities in the Pipeline CRM app) attached to a deal, person or company.No findings
Why it is in this group
- The name "pipelinecrm_list_notes" says "list": a word for reading.
Description, as the server wrote it List notes (called activities in the Pipeline CRM app) attached to a deal, person or company. Pass at least one of deal_id, person_id, company_id. Filter by text, category, author and created date. GET /notes.
Annotations the server declares
- title: List notes
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_peopleList or search people (leads and contacts) with email, phones, position, company, owner, lead status and tags.No findings
Why it is in this group
- The name "pipelinecrm_list_people" says "list": a word for reading.
Description, as the server wrote it List or search people (leads and contacts) with email, phones, position, company, owner, lead status and tags. Use search for a quick match on name, email or company name, or filter precisely. GET /people.
Annotations the server declares
- title: List people
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_person_dealsList the deals one person is associated with.No findings
Why it is in this group
- The name "pipelinecrm_list_person_deals" says "list": a word for reading.
Description, as the server wrote it List the deals one person is associated with. GET /people/{id}/deals.
Annotations the server declares
- title: List deals of a person
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_person_notesList the notes (activities) logged on one person.No findings
Why it is in this group
- The name "pipelinecrm_list_person_notes" says "list": a word for reading.
Description, as the server wrote it List the notes (activities) logged on one person. GET /people/{id}/notes.
Annotations the server declares
- title: List notes on a person
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
pipelinecrm_list_usersList the users of the Pipeline CRM account (id, name, email, team, admin flag).No findings
Why it is in this group
- The name "pipelinecrm_list_users" says "list": a word for reading.
Description, as the server wrote it List the users of the Pipeline CRM account (id, name, email, team, admin flag). Use the ids as owners of deals, people and companies. api_key values are never returned. GET /users.
Annotations the server declares
- title: List users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http pipeline-crm https://pipeline-crm.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__pipeline-crm__pipelinecrm_get_profile",
"mcp__pipeline-crm__pipelinecrm_list_users",
"mcp__pipeline-crm__pipelinecrm_get_user",
"mcp__pipeline-crm__pipelinecrm_list_deals",
"mcp__pipeline-crm__pipelinecrm_get_deal",
"mcp__pipeline-crm__pipelinecrm_deal_totals_by_stage",
"mcp__pipeline-crm__pipelinecrm_list_deal_notes",
"mcp__pipeline-crm__pipelinecrm_list_people",
"mcp__pipeline-crm__pipelinecrm_get_person",
"mcp__pipeline-crm__pipelinecrm_list_person_deals",
"mcp__pipeline-crm__pipelinecrm_list_person_notes",
"mcp__pipeline-crm__pipelinecrm_list_companies",
"mcp__pipeline-crm__pipelinecrm_get_company",
"mcp__pipeline-crm__pipelinecrm_list_company_people",
"mcp__pipeline-crm__pipelinecrm_list_notes",
"mcp__pipeline-crm__pipelinecrm_get_note",
"mcp__pipeline-crm__pipelinecrm_list_calendar_entries",
"mcp__pipeline-crm__pipelinecrm_get_calendar_entry",
"mcp__pipeline-crm__pipelinecrm_list_deal_stages",
"mcp__pipeline-crm__pipelinecrm_list_deal_pipelines",
"mcp__pipeline-crm__pipelinecrm_list_lookup"
],
"ask": [],
"deny": [
"mcp__pipeline-crm__pipelinecrm_create_deal",
"mcp__pipeline-crm__pipelinecrm_update_deal",
"mcp__pipeline-crm__pipelinecrm_create_person",
"mcp__pipeline-crm__pipelinecrm_update_person",
"mcp__pipeline-crm__pipelinecrm_create_company",
"mcp__pipeline-crm__pipelinecrm_update_company",
"mcp__pipeline-crm__pipelinecrm_add_note",
"mcp__pipeline-crm__pipelinecrm_create_calendar_entry",
"mcp__pipeline-crm__pipelinecrm_update_calendar_entry"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as pipeline-crm. Review it before you use it.