Lofty MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOFTY_API_KEY | Yes | Your Lofty Bearer token (OAuth2 access token or API key) | |
| LOFTY_SAFE_MODE | No | Set to 'false' to enable delete/destructive tools | true |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listLeadsC | List leads with optional filters. Returns a paginated list. |
| getLeadB | Get a single lead by ID. |
| createLeadD | Create a new lead. |
| updateLeadC | Update an existing lead by ID. |
| assignLeadC | Assign a lead to a user. |
| updateLeadInquiryB | Update a lead's property inquiry preferences. |
| updateLeadPropertyC | Update a lead's current property information. |
| logLeadActivityC | Log an activity event against a lead. |
| getLeadActivitiesV1C | Get activity history for a lead (v1, page-based). |
| getLeadActivitiesV2B | Get activity history for a lead (v2, cursor/offset-based with timezone support). |
| getAssigneeInfoB | Look up the assignee agent for a lead by phone, email, or external ID. |
| listNotesC | List notes for a lead. |
| getNoteB | Get a single note by ID. |
| createNoteA | Create a note on a lead. |
| updateNoteB | Update an existing note by ID. |
| listTasksV1C | List tasks for a lead (v1 API). Requires leadId. |
| getTaskV1B | Get a single task by ID (v1 API). |
| createTaskV1C | Create a task (v1 API). Type: Other | Call | Email | Text. AssignedRole: Agent | Assistant. |
| updateTaskV1C | Update a task by ID (v1 API). Type: Other | Call | Email | Text. AssignedRole: Agent | Assistant. |
| listAppointmentsB | List appointments for a lead (v1 API). Requires leadId. |
| listTasksV2B | List tasks for a lead (v2 API). Requires leadId. |
| getTaskV2B | Get a single task by ID (v2 API). |
| createTaskV2B | Create a task or appointment (v2 API). Type: Other | Call | Email | Text | Appointment. For Appointment type, provide address. |
| updateTaskV2C | Update a task by ID (v2 API). Updatable fields: content, startAt, endAt, timeZoneCode, address. |
| finishTaskV2C | Mark a task as finished (v2 API). |
| unfinishTaskV2A | Mark a finished task as unfinished / reopen it (v2 API). |
| listMyTasksV2A | List tasks assigned to the authenticated user (v2 API). No required params. |
| queryCalendarsB | Query calendar items for a lead (v2 API). Requires leadId. |
| createCalendarA | Create a calendar item (v2 API). type: TASK | APPOINTMENT. For TASK provide taskWay and assignedRole; for APPOINTMENT provide address. |
| updateCalendarA | Update a calendar item by ID (v2 API). Calendar IDs are composite strings like "563172-task" or "563172-appointment". |
| finishCalendarB | Mark a calendar item as finished (v2 API). Calendar IDs are composite strings like "563172-task" or "563172-appointment". |
| unfinishCalendarA | Reopen a finished calendar item (v2 API). Calendar IDs are composite strings like "563172-task" or "563172-appointment". |
| getAvailableMeetingsC | Get available meeting slots for a lead (v2 API). Requires leadId. |
| listCallsC | List call records for a lead. |
| getCallRecordA | Get a single call record by call ID. |
| getCallRecordUrlB | Get the recording URL for a call by call ID. |
| listCallHistoryC | List call communication history for a lead. |
| listCallHistoryV2C | List call communication history for a lead (v2 endpoint). |
| listEmailHistoryB | List email communication history for a lead. |
| listTextHistoryB | List SMS/text communication history for a lead. |
| searchCommunicationsByAgentC | Search communications by agent with optional filters. |
| sendSmsC | Send an SMS message to a lead. |
| sendEmailB | Send an email message to a lead. |
| getCallByCommIdA | Get a call communication record by its communication ID (v2). |
| getEmailByCommIdB | Get an email communication record by its communication ID (v2). |
| getTextByCommIdA | Get a text/SMS communication record by its communication ID (v2). |
| listWebhooksA | List all webhook subscriptions for the account. |
| createWebhookB | Subscribe to a Lofty webhook event. Event types (listId): 1=Agent Info, 2=Lead Info, 3=Lead Activity, 4=Listing Alert, 5=Transaction, 6=Call, 7=Email, 8=Text, 9=Note, 10=Task, 11=Appointment, 12=Pipeline Change. callbackUrl must be HTTPS. |
| getCurrentSalesAgentB | Get the current authenticated sales agent profile. |
| getSalesAgentByLeadB | Get the sales agent assigned to a specific lead. |
| getSalesAgentQuotaB | Get the current sales agent quota. |
| getSalesAgentSettingsB | Get sales agent settings. |
| saveSalesAgentSettingsC | Save/update sales agent settings. |
| getWorkingLeadsC | List working leads for the current sales agent. |
| addWorkingLeadsC | Add leads to the working leads list. |
| checkWorkingLeadA | Check if a specific lead is in the working leads list. |
| muteLeadC | Mute or unmute a working lead. |
| getMuteStatusB | Get the mute status for a lead. |
| sendSmsViaAiNumberB | Send an SMS to the agent via the AI number. |
| batchCreatePlanTasksB | Batch create plan tasks for a lead. |
| getPlanTasksByLeadC | Get plan tasks for a specific lead. |
| generateCallScriptC | Generate an AI call script for a lead. |
| getCallSummaryB | Get AI call summary for a lead. |
| generateCallSummaryC | Generate an AI call summary for a call. |
| listLeadAnalysisC | List AI lead analysis entries for a lead. |
| createLeadAnalysisB | Create an AI lead analysis for a lead. |
| generatePrepareInsightC | Generate AI prepare insight for a lead. |
| sendOpportunityNotificationC | Send an opportunity notification to an agent. |
| sendAppPushTaskReminderC | Send an app push task reminder notification. |
| sendSystemSmsToAgentC | Send a system SMS message to an agent. |
| sendSystemEmailToAgentC | Send a system email message to an agent. |
| listLeadTransactionsB | List all transactions for a lead. |
| addTransactionC | Add a new transaction to a lead. |
| getTransactionB | Get a specific transaction for a lead. |
| updateTransactionB | Update an existing transaction for a lead. |
| getTransactionPropertyAddressB | Get the property address for a specific transaction. |
| updateTransactionPropertyAddressC | Update the property address for a transaction. |
| getTransactionCustomFieldsB | Get the list of custom fields defined for transactions. |
| searchTransactionsV2C | Search transactions with optional filters (v2 endpoint). |
| updateBrokermintTransactionB | Update a Brokermint transaction (callback format — body passed through as-is). |
| getMeA | Get the current authenticated user profile. |
| listMembersA | List all members in the team. |
| getMemberByAccountA | Get a member by their account (email address). |
| getMemberByIdB | Get a member/user by their numeric user ID. |
| listTagsA | List all tags defined for the team. |
| listCustomFieldsB | List all custom fields defined for the team. |
| addCustomFieldC | Add or update a custom field value. |
| listPipelinesA | List all lead pipelines for the team. |
| listLeadPondsA | List all lead ponds for the team. |
| getLeadPondA | Get a specific lead pond by ID. |
| listRoutingRulesB | List routing rules for a business type. |
| updateRoutingRuleC | Update a routing rule for a business type. |
| getSupplementRuleB | Get supplement routing rule for a business type. |
| updateSupplementRuleC | Update supplement routing rule for a business type. |
| listRoutingRolesC | List all routing roles. |
| listAssignMembersC | List assign members for a business type. |
| listManualLogTypesA | List all manual log types. |
| createManualLogTypeB | Create a new manual log type. |
| getManualLogTypeA | Get a manual log type by ID. |
| getOrgInfoC | Get organization info. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NerdSnipe-Inc/lofty-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server