lens
Create your digital twin: a public page that answers from your own material, with citations.
Should I use this
Quality & Safety
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": {
"lens": {
"url": "https://app.mindola.ai/mcp/lens"
}
}
}Remote endpoints
https://app.mindola.ai/mcp/lensstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟡create_digital_twin_lens(displayName, tagline, bio, context, audience, ...)
Create a shareable Mindola lens (AI clone) from a profile the user has approved in this conversation. Call this only after summarizing the proposed lens for the user and receiving explicit confirmation. Use only information the user provided or confirmed in the conversation; do not claim access to hidden memory, private chats, or external accounts.
Input Schema
{
"type": "object",
"properties": {
"displayName": {
"type": "string",
"description": "The user's preferred public name for the lens, after they confirm it.",
"maxLength": 80
},
"tagline": {
"type": "string",
"description": "A short one-line summary of what this lens represents.",
"maxLength": 160
},
"bio": {
"type": "string",
"description": "A concise first-person or third-person biography assembled from user-confirmed information.",
"maxLength": 2000
},
"context": {
"type": "string",
"description": "Extra grounding context for how the lens should answer. Use only information the user confirmed.",
"maxLength": 4000
},
"audience": {
"type": "string",
"description": "Who this lens is intended to help or answer questions for.",
"maxLength": 500
},
"sourceSummary": {
"type": "string",
"description": "Short note describing what ChatGPT used to assemble the profile, without exposing hidden chain-of-thought or unapproved private data.",
"maxLength": 1500
},
"topicName": {
"type": "string",
"description": "The Mindola space name that will hold the seeded facts.",
"maxLength": 80
},
"locale": {
"type": "string",
"description": "Optional BCP-47 locale for user-facing lens copy.",
"maxLength": 32
},
"tone": {
"type": "string",
"enum": [
"warm",
"neutral",
"professional",
"playful"
],
"description": "The visitor-facing tone of the lens."
},
"accentColor": {
"type": "string",
"description": "Optional hex color, for example #4f46e5.",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"expertise": {
"type": "array",
"description": "Specific domains, skills, or interests the user confirmed.",
"maxItems": 12,
"items": {
"type": "string",
"maxLength": 160
}
},
"boundaries": {
"type": "array",
"description": "Things the lens should not claim, discuss, or answer beyond. Ask the user to confirm these before calling.",
"maxItems": 12,
"items": {
"type": "string",
"maxLength": 160
}
},
"facts": {
"type": "array",
"description": "Concrete user-approved facts to seed the lens memory. Each item should stand alone.",
"maxItems": 30,
"items": {
"type": "string",
"maxLength": 320
}
},
"suggestedPrompts": {
"type": "array",
"description": "Starter questions visitors can ask the lens.",
"maxItems": 4,
"items": {
"type": "string",
"maxLength": 120
}
},
"vibeWords": {
"type": "array",
"description": "Up to four short adjectives for the lens profile.",
"maxItems": 4,
"items": {
"type": "string",
"maxLength": 24
}
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"topicName": {
"type": "string"
},
"shareUrl": {
"type": "string"
},
"claimUrl": {
"type": [
"string",
"null"
]
},
"manageUrl": {
"type": [
"string",
"null"
]
},
"claimRequired": {
"type": "boolean"
},
"expiresAt": {
"type": [
"string",
"null"
]
},
"factCount": {
"type": "number"
},
"suggestedPrompts": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"displayName",
"topicName",
"shareUrl",
"claimUrl",
"manageUrl",
"claimRequired",
"expiresAt",
"factCount",
"suggestedPrompts"
],
"additionalProperties": false
}🟡add_lens_knowledge(lens_token, items)
Add text notes or URLs to a Mindola lens created in this conversation (before it is claimed). Content runs through the standard ingest pipeline so the lens can answer from it, with citations.
Input Schema
{
"type": "object",
"properties": {
"lens_token": {
"type": "string",
"description": "The token from the lens's share URL (the part after /me/)."
},
"items": {
"type": "array",
"maxItems": 20,
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text",
"url"
]
},
"content": {
"type": "string",
"maxLength": 20000
},
"title": {
"type": "string",
"maxLength": 80
}
},
"required": [
"type",
"content"
],
"additionalProperties": false
}
}
},
"required": [
"lens_token",
"items"
],
"additionalProperties": false
}🟢get_lens_status(lens_token)
Check a Mindola lens: its share URL, whether it has been claimed, and how much of its knowledge has finished ingesting (ready / pending / failed).
Input Schema
{
"type": "object",
"properties": {
"lens_token": {
"type": "string",
"description": "The token from the lens's share URL (the part after /me/)."
}
},
"required": [
"lens_token"
],
"additionalProperties": false
}Recommended Prompts
get_lens_statusget_lens_statusCommunity
Evidence