Promise
Evidence-backed follow-through memory for what you owe, await, and need to remember.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_today
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"promise": {
"url": "https://mcp.usepromise.ai/mcp"
}
}
}Remote endpoints
https://mcp.usepromise.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢connect_promise(clientName, returnUrl, state, intent, scopes)
Return a Promise signup URL for users who want agent access to follow-up memory. Safety: Never collects provider credentials in the agent. Send the user to Promise.
Input Schema
{
"type": "object",
"properties": {
"clientName": {
"type": "string",
"description": "Name of the agent or MCP client requesting access."
},
"returnUrl": {
"type": "string",
"description": "HTTPS URL the user can return to after Promise authorization."
},
"state": {
"type": "string",
"description": "Opaque agent state returned unchanged after authorization."
},
"intent": {
"type": "string",
"description": "Signup intent to preserve in Promise attribution."
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"promise.memory.read",
"promise.evidence.read",
"promise.capture.write",
"promise.followup.write",
"promise.draft.write"
]
}
}
},
"required": [],
"additionalProperties": false
}🟢get_today(horizonDays)
Return what currently deserves the user's attention. Safety: Return concise items and links back to Promise for sensitive action.
Input Schema
{
"type": "object",
"properties": {
"horizonDays": {
"type": "integer",
"minimum": 0,
"maximum": 30,
"default": 7
}
},
"required": [],
"additionalProperties": false
}🟢list_commitments(category, scope, limit)
List what the user owes and what the user is waiting on. Safety: Do not infer more certainty than Promise returns.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"all",
"waitingOnMe",
"waitingOnThem",
"dueSoon",
"overdue"
],
"default": "all"
},
"scope": {
"type": "string",
"enum": [
"active",
"snoozed",
"history"
],
"default": "active"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 25
}
},
"required": [],
"additionalProperties": false
}🟢get_commitment(id)
Retrieve a structured Promise commitment or waiting-on item. Safety: Prefer structured status, due dates, people, and source links over raw mail.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_commitment_evidence(id)
Show why Promise believes a follow-up or memory exists. Safety: Return source summaries and citations permitted by the platform API.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_person_context(contactId, query, limit)
Summarize what matters before the user speaks with someone. Safety: Avoid exposing hidden/private fields unless the platform scopes allow them.
Input Schema
{
"type": "object",
"properties": {
"contactId": {
"type": "string",
"format": "uuid"
},
"query": {
"type": "string",
"description": "Name or email search when contactId is unknown."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5
}
},
"required": [],
"additionalProperties": false
}🟢search_memory(query, limit)
Search Promise's derived memory with user authorization. Safety: Search derived Promise memory, not raw provider mailboxes.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"required": [
"query"
],
"additionalProperties": false
}⚪capture_note(transcript, title, kind, personName, contactId, ...)
Let a user tell Promise something to remember. Safety: Echo what Promise understood and require review when the platform requests it.
Input Schema
{
"type": "object",
"properties": {
"transcript": {
"type": "string"
},
"title": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"task",
"follow_up",
"remember"
],
"default": "remember"
},
"personName": {
"type": "string"
},
"contactId": {
"type": "string",
"format": "uuid"
},
"dueAt": {
"type": "string",
"format": "date-time"
},
"requestId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"transcript"
],
"additionalProperties": false
}🟡create_follow_up(title, transcript, personName, contactId, dueAt, ...)
Create a future follow-up from explicit user intent. Safety: Only create follow-ups from explicit user instructions.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"transcript": {
"type": "string"
},
"personName": {
"type": "string"
},
"contactId": {
"type": "string",
"format": "uuid"
},
"dueAt": {
"type": "string",
"format": "date-time"
},
"requestId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"title"
],
"additionalProperties": false
}⚪mark_resolved(id)
Tell Promise that a commitment or waiting-on item is complete. Safety: Confirm destructive or irreversible status changes in the agent UI.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟡draft_follow_up(commitmentId, personName, context, goal)
Draft a follow-up message without sending it. Safety: Do not send email in v1. Return a draft and Promise confirmation link.
Input Schema
{
"type": "object",
"properties": {
"commitmentId": {
"type": "string",
"format": "uuid"
},
"personName": {
"type": "string"
},
"context": {
"type": "string"
},
"goal": {
"type": "string"
}
},
"required": [],
"additionalProperties": false
}Community
Evidence