Propstack MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Propstack contacts, properties, projects, deals, tasks, events; create and update CRM records.
18 tools: 6 can delete or cancel things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels6Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads12Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http propstack https://propstack.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
18 tools
Deletes or cancels 6Claude Code: deny
propstack_create_contactWRITE: create a CRM contact.No findings
Why it is in this group
- The name "propstack_create_contact" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a CRM contact. Propstack matches on the email address: if a contact with the same email already exists it is UPDATED with the given fields instead of creating a duplicate. Consent flags (newsletter, contact permission, GDPR status) cannot be set here. Returns the contact id. POST /contacts.
Annotations the server declares
- title: Create contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
propstack_create_dealWRITE: create a deal linking a contact to a property in a pipeline stage (see propstack_list_deal_pipelines for stage ids).No findings
Why it is in this group
- The name "propstack_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 linking a contact to a property in a pipeline stage (see propstack_list_deal_pipelines for stage ids). Returns the new deal. POST /client_properties.
Annotations the server declares
- title: Create deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
propstack_create_taskWRITE: create a note, a to-do (with due date) or an appointment (with start and end) in Propstack, linked to contacts, properties or projects.No findings
Why it is in this group
- The name "propstack_create_task" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a note, a to-do (with due date) or an appointment (with start and end) in Propstack, linked to contacts, properties or projects. note_type_id is the activity type id (see propstack_get_reference_data activity_types). No e-mail or SMS is sent to the contact; the only mail is the reminder to the assignee when remind_at is set. Returns the new task id. POST /tasks.
Annotations the server declares
- title: Create note, to-do or appointment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
propstack_update_contactWRITE: change the given fields of an existing contact; fields not given stay as they are.No findings
Why it is in this group
- The name "propstack_update_contact" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change the given fields of an existing contact; fields not given stay as they are. Returns the updated contact (business fields). PUT /contacts/{id}.
Annotations the server declares
- title: Update contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
propstack_update_dealWRITE: change the given fields of a deal, typically move it to another pipeline stage or update its note or price.No findings
Why it is in this group
- The name "propstack_update_deal" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change the given fields of a deal, typically move it to another pipeline stage or update its note or price. Fields not given stay as they are. PUT /client_properties/{id}.
Annotations the server declares
- title: Update deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
propstack_update_taskWRITE: change the given fields of an existing note, to-do or appointment (for example mark a to-do done, move its due date, or reschedule).No findings
Why it is in this group
- The name "propstack_update_task" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change the given fields of an existing note, to-do or appointment (for example mark a to-do done, move its due date, or reschedule). Fields not given stay as they are. PUT /tasks/{id}.
Annotations the server declares
- title: Update task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 12Claude Code: allow
propstack_get_contactOne contact by id with address, salutation, language, notes, GDPR status, owner, status, source, tags, sub-contacts and owned properties.No findings
Why it is in this group
- The name "propstack_get_contact" says "get": a word for reading.
Description, as the server wrote it One contact by id with address, salutation, language, notes, GDPR status, owner, status, source, tags, sub-contacts and owned properties. Birth data, identity and tax numbers, income and the portal token are never returned. GET /contacts/{id}.
Annotations the server declares
- title: Get contact
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_get_propertyOne property (Objekt) by id: address, type, rooms, areas, prices, status and the description, location and furnishing texts (clipped).No findings
Why it is in this group
- The name "propstack_get_property" says "get": a word for reading.
Description, as the server wrote it One property (Objekt) by id: address, type, rooms, areas, prices, status and the description, location and furnishing texts (clipped). No images or owner. GET /units/{id}.
Annotations the server declares
- title: Get property
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_get_reference_dataLook up the ids used by other tools: property_statuses, activity_types (note/task/appointment types, needed as note_type_id), contact_sources, reservation_reasons (rejection reason…No findings
Why it is in this group
- The name "propstack_get_reference_data" says "get": a word for reading.
Description, as the server wrote it Look up the ids used by other tools: property_statuses, activity_types (note/task/appointment types, needed as note_type_id), contact_sources, reservation_reasons (rejection reasons), contact_tags or property_tags. GET /property_statuses, /activity_types, /contact_sources, /reservation_reasons or /groups.
Annotations the server declares
- title: Get reference data
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_get_taskOne task by id (a note, to-do or appointment): title, body text (clipped), type, linked contacts, properties and projects (id and name only), due date or start/end.No findings
Why it is in this group
- The name "propstack_get_task" says "get": a word for reading.
Description, as the server wrote it One task by id (a note, to-do or appointment): title, body text (clipped), type, linked contacts, properties and projects (id and name only), due date or start/end. GET /tasks/{id}.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_activitiesList the activity timeline (notes, tasks, appointments, e-mails, SMS, letters, rejections, inquiries) with title, linked contacts and properties, state and dates.No findings
Why it is in this group
- The name "propstack_list_activities" says "list": a word for reading.
Description, as the server wrote it List the activity timeline (notes, tasks, appointments, e-mails, SMS, letters, rejections, inquiries) with title, linked contacts and properties, state and dates. Message and note bodies are not returned. Filter by type, contact, property, project, owner, category or date. GET /activities.
Annotations the server declares
- title: List activities
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_contactsList or search CRM contacts (Kontakte).No findings
Why it is in this group
- The name "propstack_list_contacts" says "list": a word for reading.
Description, as the server wrote it List or search CRM contacts (Kontakte). Returns business fields only (name, company, email, phone numbers, status, source, tags, owner, dates), never birth data, identity or tax numbers, income or portal tokens. Search by free text (name, email, address, phone), exact email, exact phone number, or filter by status, source, tag, owner and dates. Archived contacts are excluded unless archived is set. GET /contacts.
Annotations the server declares
- title: List or search contacts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_deal_pipelinesList the deal pipelines with their stages (id, name, position, win chance).No findings
Why it is in this group
- The name "propstack_list_deal_pipelines" says "list": a word for reading.
Description, as the server wrote it List the deal pipelines with their stages (id, name, position, win chance). Use the stage ids to filter deals or to move a deal. GET /deal_pipelines.
Annotations the server declares
- title: List deal pipelines
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_dealsList deals (a deal links a contact to a property and sits in a pipeline stage).No findings
Why it is in this group
- The name "propstack_list_deals" says "list": a word for reading.
Description, as the server wrote it List deals (a deal links a contact to a property and sits in a pipeline stage). Filter by pipeline, stage, category (qualified/unqualified/lost), contact, property, project or owner. Use propstack_list_deal_pipelines for stage ids. GET /client_properties.
Annotations the server declares
- title: List deals
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_eventsList calendar appointments (Termine, e.g.No findings
Why it is in this group
- The name "propstack_list_events" says "list": a word for reading.
Description, as the server wrote it List calendar appointments (Termine, e.g. viewings) in a time window, with title, place, start/end, state and the linked contact, property and project (id and name only). Paged: follow next_page. GET /events.
Annotations the server declares
- title: List calendar events
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_projectsList projects (Projekte: a project groups several property units): title, project id, status, address, owner.No findings
Why it is in this group
- The name "propstack_list_projects" says "list": a word for reading.
Description, as the server wrote it List projects (Projekte: a project groups several property units): title, project id, status, address, owner. Not paged; at most 200 are returned. GET /projects.
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_propertiesList or search properties (Objekte / units): address, type, marketing type (buy/rent), rooms, areas, prices, status.No findings
Why it is in this group
- The name "propstack_list_properties" says "list": a word for reading.
Description, as the server wrote it List or search properties (Objekte / units): address, type, marketing type (buy/rent), rooms, areas, prices, status. Images and owners are not returned. Filter by free text, status, tag, project, marketing type, object type, price and area ranges. GET /units.
Annotations the server declares
- title: List or search properties
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
propstack_list_usersList the users (staff, Nutzer) of the Propstack account: id, name, work email, position, phone, team.No findings
Why it is in this group
- The name "propstack_list_users" says "list": a word for reading.
Description, as the server wrote it List the users (staff, Nutzer) of the Propstack account: id, name, work email, position, phone, team. Use the ids as owner/broker filters. GET /brokers.
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 propstack https://propstack.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__propstack__propstack_list_contacts",
"mcp__propstack__propstack_get_contact",
"mcp__propstack__propstack_list_properties",
"mcp__propstack__propstack_get_property",
"mcp__propstack__propstack_list_projects",
"mcp__propstack__propstack_list_deals",
"mcp__propstack__propstack_list_deal_pipelines",
"mcp__propstack__propstack_list_activities",
"mcp__propstack__propstack_get_task",
"mcp__propstack__propstack_list_events",
"mcp__propstack__propstack_list_users",
"mcp__propstack__propstack_get_reference_data"
],
"ask": [],
"deny": [
"mcp__propstack__propstack_create_contact",
"mcp__propstack__propstack_update_contact",
"mcp__propstack__propstack_create_task",
"mcp__propstack__propstack_update_task",
"mcp__propstack__propstack_create_deal",
"mcp__propstack__propstack_update_deal"
]
}
}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 propstack. Review it before you use it.