Skip to main content
Glama
agenthouse-org

dealdesk-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AGENTHOUSE_API_KEYYesYour AgentHouse API key (project key). Development keys use the local_ prefix.
AGENTHOUSE_API_URLNoThe base URL of the AgentHouse API. Defaults to https://api.agenthouse.org.https://api.agenthouse.org
AGENTHOUSE_PROJECT_IDYesThe ID of the AgentHouse project to use with DealDesk.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}

Tools

Functions exposed to the LLM to take actions

NameDescription
dealdesk.discoverA

List additional DealDesk tool domains (desk, quotes, portfolio, directory, orders, admin) and unlock skill-gated tools for one domain. Also returns authorizedProjectIds. Prefer dealdesk.list_projects to list Connect projects.

dealdesk.list_skillsB

List shipped DealDesk sales skills packaged with dealdesk-plugin. Returns authorizedProjectIds.

dealdesk.list_projectsA

List DealDesk project ids authorized by the current Connect token or API key. Call this before project-scoped tools when more than one project may be authorized. Does not require projectId.

dealdesk.list_cardsA

List DealDesk desk cards for one project. Default rows are summaries (cardId, title, stage, quoteId). Filter with q, stage, and/or ownerUserId. Pass fields=full for the complete card. Returns total, hasMore, nextCursor, projectId, and authorizedProjectIds.

dealdesk.list_desk_usersA

List DealDesk users eligible as card/case owners (userId, email, displayName). Use before setting ownerUserId on create_card / patch_card / create_case / patch_case.

dealdesk.list_desk_stagesA

List the project’s discrete desk board stages/columns (columnId, label, labelDe, order). Use before setting stage on create_card / patch_card / create_case / patch_case. Never invent stage ids by slugifying UI labels.

dealdesk.get_cardC

Get one desk card by id.

dealdesk.list_card_activityA

Read persisted desk-card change history (stage/owner/account/contact changes, notes, quote/order/share milestones). Newest first. Empty history is valid. Distinct from status-update timeline (comments/tasks/emails).

dealdesk.create_cardA

Create a desk card (title, stage, optional description, ownerUserId, priority, Customer Directory company/contact, and optional deal estimates: estimatedValue, estimatedValueCurrency, estimatedValuePeriod, probabilityPercent). Resolve owners with dealdesk.list_desk_users. Prefer estimate fields over create_case when the opportunity already lives on the desk.

dealdesk.patch_cardA

Update a desk card (title, stage, description, ownerUserId, priority, company/contact, deal estimates, quote dealValueOverride). Pass companyId/contactId to link Customer Directory records (same as HTTP accountRef/contactRef). Pass null to clear company/contact/owner. When company/contact or owner changes, also updates a linked local case and quote customer/owner link where applicable (same as the DealDesk UI). estimatedValue / estimatedValueCurrency / estimatedValuePeriod / probabilityPercent update the card (or its linked local case when present). dealValueOverride / dealValueOverrideNet apply only to unaccepted quote cards. Do not call create_case to set estimates on an existing card. Soft close uses stage closed — no DELETE.

dealdesk.add_card_noteA

Add a structured note to a desk card (title + body). For the main card description field, use dealdesk.patch_card with description. Do not use notes to log emails — use dealdesk.log_email (or create_status_update with touchpoint email_incoming/email_outgoing).

dealdesk.patch_card_noteA

Update an existing structured desk-card note. Prefer get_card first for noteId and updatedAt. Delete is not available through MCP.

dealdesk.add_company_noteC

Add a structured note to a customer-directory company (title + body).

dealdesk.patch_company_noteA

Update an existing company note. Prefer get_company first for noteId and updatedAt. Delete is not available through MCP.

dealdesk.add_contact_noteC

Add a structured note to a customer-directory contact (title + body).

dealdesk.patch_contact_noteA

Update an existing contact note. Prefer get_contact first for noteId and updatedAt. Delete is not available through MCP.

dealdesk.get_company_commercial_summaryC

Open/won/lost pipeline value and linked deals, quotes, and orders for a company.

dealdesk.get_contact_commercial_summaryC

Open/won/lost pipeline value and linked deals, quotes, and orders for a contact.

dealdesk.list_status_updatesB

List status updates (comments, tasks, touchpoints including email) for a desk card, company, or contact.

dealdesk.create_status_updateA

Create a status update: comment, task, or touchpoint (phone_call, meeting, email_incoming, email_outgoing, misc). Prefer dealdesk.log_email for inbound/outbound email logs.

dealdesk.patch_status_updateA

Update an existing status update (comment body, task fields/status, or touchpoint fields). Authors may edit their own comments/touchpoints; tasks are editable by staff. Prefer list_status_updates first for statusUpdateId and updatedAt.

dealdesk.log_emailA

Log an inbound or outbound email on a desk card as a status-update touchpoint (email_incoming / email_outgoing). Persists structured from/to (plus subject/text). Do not use add_card_note for email logs.

dealdesk.list_quotesB

List quotes for a project, optionally filtered by status or search text.

dealdesk.get_quoteC

Get quote status, totals, acceptance summary, analytics, and customer share links (classic + rich/experience paths).

dealdesk.get_quote_summaryB

Read persisted quote line items/options/groups and status without enrichment or repricing.

dealdesk.list_quote_sharesB

List customer share links for a quote. classicPath is the standard share; experiencePath is the rich experience Desk.

dealdesk.create_quote_shareA

Create a customer share link for a quote. Returns classicPath (standard share) and experiencePath (rich experience). Soft-close later with patch_quote_share isOpen=false; delete is not available through MCP.

dealdesk.patch_quote_shareA

Update a quote share link (label, password, quickchat, or isOpen). Set isOpen=false to close the link without deleting.

dealdesk.create_quoteA

Create a classic draft quote with optional lineItems, options, and groups. Prefer companyId/contactId (Customer Directory) so snapshots are resolved server-side. Use this path for free-form / open positions; use create_quote_from_configuration for CPQ.

dealdesk.clone_quoteA

Clone an existing quote into a new draft. Optionally retarget title, opportunity, and Customer Directory company/contact. Prefer clone when the user likes a past quote.

dealdesk.replace_quote_itemsA

Replace draft quote lineItems, options, and groups in one write (classic authoring). Draft-only; refused for accepted/declined quotes. Send the full arrays you want persisted.

dealdesk.create_quote_from_configurationB

Create a quote from a published Portfolio configuration (CPQ). Optional quoteLayout shapes groups/optional/editable presentation; commercial amounts stay server-evaluated.

dealdesk.update_quote_from_configurationA

Re-apply a published Portfolio configuration onto an existing draft quote (full commercial replace). Does not change title/customer/ownership. Optional quoteLayout reshapes presentation.

dealdesk.portfolio_summaryC

Get Portfolio draft/published summary for a project.

dealdesk.portfolio_evaluateC

Evaluate a CPQ configuration against the Portfolio (side-effect free).

dealdesk.list_companiesC

Search or list customer-directory companies.

dealdesk.get_companyC

Get a company by id.

dealdesk.create_companyB

Create a company in the customer directory. Send legalName or name at the top level (name maps to legalName). externalId is optional and auto-generated as local-company- when omitted — do not require fields.externalId.

dealdesk.list_contactsC

Search or list customer-directory contacts.

dealdesk.create_contactB

Create a contact in the customer directory. Requires displayName or name (or firstName/lastName). externalId is optional and auto-generated when omitted.

dealdesk.export_intelligenceC

Export Deal Intelligence workbook (Excel) for analysis. Bounded export path.

dealdesk.render_card_summaryA

Show the DealDesk card-summary widget in MCP Apps hosts (ChatGPT). Call this when the user should see the card UI. Data tools like get_card return JSON only.

dealdesk.render_quote_totalsA

Show the DealDesk quote-totals widget in MCP Apps hosts (ChatGPT). Call this when the user should see quote totals UI. get_quote returns JSON only.

dealdesk.patch_quoteA

Update draft quote metadata (title, language, currency, customer snapshots, experience template). Does not accept/decline and does not replace pricing lines.

dealdesk.render_quote_pdfA

Generate a quote PDF into the project DealDesk exports folder and return the file path. Does not persist the PDF on the quote.

dealdesk.get_contactC

Get one customer-directory contact by id.

dealdesk.patch_companyB

Update a company. Requires expectedRevision from get_company for optimistic concurrency.

dealdesk.patch_contactB

Update a contact. Requires expectedRevision from get_contact for optimistic concurrency.

dealdesk.list_casesC

List DealDesk cases with optional filters.

dealdesk.get_caseC

Get one DealDesk case by id.

dealdesk.create_caseA

Create a DealDesk case (sales/request case, not a Salesforce Opportunity search). Creating a case also adds a desk card. To set value/chance/period on an existing desk card, use dealdesk.patch_card instead — do not create_case as a substitute.

dealdesk.patch_caseA

Update a DealDesk case (title, stage, description, links, estimates including estimatedValuePeriod). For an existing desk card, prefer dealdesk.patch_card with the same estimate fields (it updates the linked case when one exists).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
DealDesk card summary
DealDesk quote totals
DealDesk portfolio publish preview

TDQS

B3/5.0

Scored across 52 tools

Disambiguation3/5

The tool set contains many closely related operations—create_card vs create_case, patch_card vs patch_case, and multiple quote authoring variants—that require careful reading to distinguish. Descriptions provide explicit guidance (e.g., 'prefer X', 'do not use Y'), which mitigates but does not eliminate the overlap.

Naming Consistency4/5

Names predominantly follow a snake_case verb_noun pattern (list_*, get_*, create_*, patch_*, add_*), with minor exceptions like portfolio_summary, portfolio_evaluate, and discover. The convention is largely predictable and readable.

Tool Count1/5

52 tools far exceed the typical 3-15 range and cross into extreme mismatch territory for an MCP server, even for a broad sales platform. The surface is bloated with many fine-grained variants that could be consolidated.

Completeness4/5

The surface covers CRUD for companies, contacts, cards, cases, quotes, and shares, plus notes, status updates, and exports. Gaps are minor—no hard deletes (intentional soft close), no dedicated get for notes/status updates, and order/admin domains are referenced but not included.

Maintenance

ActivityMaintained
ResponsivenessNo issues