Meet Rupert MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEETRUPERT_EMAIL | Yes | Service user's email. Required. | |
| MEETRUPERT_ORG_ID | No | Override the organisation. Defaults to the logged-in user's org. | |
| MEETRUPERT_BASE_URL | No | API base URL incl. `/api`. Defaults to `https://app.meetrupert.com/api`. | https://app.meetrupert.com/api |
| MEETRUPERT_PASSWORD | Yes | Service user's password. Required. | |
| MEETRUPERT_ATTACHMENT_DIRS | No | Directories `create_attachment` may read from and `download_attachment` may write to (`;`-separated on Windows, `:` elsewhere). **Empty by default, which refuses every `path` read** — see Attachments. | |
| MEETRUPERT_ATTACHMENT_TTL_MS | No | How long before an unreferenced attachment is reported as an orphan. Defaults to `3600000` (1 h). | 3600000 |
| MEETRUPERT_ATTACHMENT_MAX_BYTES | No | Per-attachment size cap. Defaults to `10485760` (10 MB), the platform's own limit. | 10485760 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_documentsA | Search the Meet Rupert knowledgebase for documents by title. Returns a paginated list of matching documents with their UUIDs, titles, draft status, categories and last-updated dates. Use the returned id with read_document to fetch full content. This is a title/metadata search — to ask a natural-language question answered from document content, use ask_ai instead. |
| read_documentA | Read a single Meet Rupert document by its UUID. Returns the title, metadata, and the document body converted to Markdown for easy reading. Get the documentId from search_documents or from an ask_ai source reference. Embedded images come back as |
| create_documentA | Create a new document in the Meet Rupert knowledgebase. Provide the body as Markdown; it is converted to the platform's rich-text format. By default the document is saved as a DRAFT (not searchable by the AI) so a human can review it before publishing — pass published:true to make it live immediately. Returns the new document's id. To embed images, upload each one with create_attachment (which takes a file path or an https:// URL — never image data) and place the markdownRef it returns in |
| update_documentA | Edit an existing Meet Rupert document. Any field you omit is left unchanged — pass only what you want to change. |
| list_categoriesA | List the document categories in the knowledgebase, with their UUIDs and document counts. Use these ids for the categoryIds parameter when creating/updating documents or when scoping ask_ai retrieval. |
| create_attachmentA | Upload an image so it can be embedded in a Meet Rupert document. PASS A FILE PATH OR AN HTTPS URL — NOT THE IMAGE DATA. The server reads the bytes itself; there is no base64 or inline-content parameter and you must not attempt to supply one. This is because a large payload placed in a tool-call argument gets silently truncated in transit (an 18,880-byte payload arrived as 7,312 bytes in testing, corrupting the file with no error raised), which rules out essentially every real screenshot. Letting the server read the file makes the returned contentLength and sha256 facts about the file itself, so you can verify them against the source. Accepts image/png, image/jpeg, image/webp and image/gif only, up to 10 MB — the type is determined from the file's magic bytes, not its extension. SVG and non-image files (PDF, .docx, plain text) cannot be attached: the platform has no storage for them. Returns an attachmentId and a ready-to-use markdownRef like |
| list_attachmentsA | List the images embedded in a Meet Rupert document, with each one's attachmentId, alt text and whether it still resolves in storage. Use this to find the id of an image you want to download or remove, or to check a document for broken images. |
| download_attachmentA | Download a stored attachment, either by writing it to a file path the server can reach (destPath) or by returning a short-lived signed URL (signedUrl:true). Returns the byte length and sha256 of what was written so you can verify it against the original. Image bytes are never returned inline — that is the same truncation hazard create_attachment exists to avoid, and a path plus a checksum is what verifying integrity actually needs. |
| delete_attachmentA | Remove an image from a document by deleting its reference from the document body. IMPORTANT: this does NOT delete the stored image itself — the Meet Rupert platform exposes no endpoint for that, so the object remains in storage and stays reachable by anyone holding a signed URL. Treat this as 'unlink from document', not 'delete'. Genuine deletion needs a platform change; do not tell a user their file has been erased. |
| ask_aiA | Ask the Meet Rupert AI a natural-language question. It runs Retrieval-Augmented Generation over the PUBLISHED documents in the knowledgebase and returns a synthesised answer plus the source documents it used (with their documentIds, which you can pass to read_document). This is a one-shot question with no memory of previous calls — use create_chat_thread + ask_in_thread for a multi-turn conversation. |
| create_chat_threadA | Create a new conversation thread for multi-turn Q&A with the Meet Rupert AI. Returns a threadId to pass to ask_in_thread. The thread's title is generated by the platform. Use this when follow-up questions need to remember earlier context; for a single standalone question use ask_ai. |
| ask_in_threadA | Ask a question within an existing conversation thread. The AI answers with the thread's prior messages as context (so follow-ups like "and what about X?" work), running RAG over the published knowledgebase. Returns the answer plus source documents. Both your question and the answer are saved to the thread. |
| list_chat_threadsA | List your recent Meet Rupert conversation threads with their titles and threadIds, so you can resume one with ask_in_thread. Returns the most recent threads first. |
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/deanjbrown/meetrupert-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server