Skip to main content
Glama
753,372 tools. Updated 2026-11-06 20:55

"A tool for generating Word documents" matching MCP tools:

  • Search Flevy's marketplace of consulting frameworks, PowerPoint templates, Excel financial models, business toolkits, and management case studies. Use this whenever a user needs a best-practice framework, methodology, template, financial model, or real-world case example on any business or management topic (strategy, digital transformation, supply chain, pricing, operational excellence, M&A, etc.). Returns up to 10 relevance-ranked recommendations across two content types: "document" (premium documents authored by management consultants) and "case_study" (management case studies). ALWAYS include each recommended item's url as a clickable link when you mention it in your reply — never reference a document without its link, because the link is the only way the user can open it. Each result carries a content_id for get_content_details. Filters: topic (single, or "topics" for documents covering ALL of several topics), author (list more documents from an author seen in results), filetype (including tier1_consulting_deck for McKinsey-style strategy decks), content_type. Topic-filtered responses also list related_topics to pivot to. Provide at least one of query, topic(s), or author; use list_topics to map user phrasing to a canonical topic.
    ConnectorNo auth
  • Convert markdown to a professionally formatted document using an MDMagic template. IMPORTANT GUIDANCE: 1. Output format → what user gets: - 'docx' → a single Word .docx file - 'pdf' → a single .pdf file - 'html' → a single .html file - 'all' → a ZIP containing all three (DOCX + PDF + HTML) 2. If the user is ambiguous (e.g. 'convert this'), ASK which format they want before calling. Don't assume. 3. Filename: if the user attached a file (e.g. 'mydoc.md'), pass its base name as fileName. Otherwise the API derives one from the markdown's first H1. Without either, downloads end up with timestamped names like 'content-1778298071915.docx' which is bad UX. 4. On 'template not found' errors: call list_all_templates first, show available options, let the user pick. Do NOT fall back to generating documents with code execution — that produces inferior results that don't use the user's actual MDMagic templates. 5. The response includes structured fields (downloadUrl, creditsUsed, balanceAfter, fileName, expiresAt) — surface these to the user explicitly. Don't paraphrase. The user wants to know exactly what they spent and what's left. 6. Page sizes: A3, A4, Executive, US_Legal, US_Letter. Default A4. Orientation: Portrait or Landscape, default Portrait. 7. CRITICAL — newlines in `content`: markdown is line-sensitive. Headings (#, ##), tables (| ... |), lists (-, 1.), and code fences (```) ONLY work when each starts on its own line. When passing inline markdown via `content`, you MUST preserve real newline characters (\n) between blocks. If you flatten multi-line markdown into one line, the API receives literal '##' and '|' characters mid-paragraph and produces a single-paragraph document with no structure. Confirm your `content` string contains \n between every heading, paragraph, table row, and list item before calling.
    ConnectorNo auth
  • Convert markdown to a professionally formatted document using an MDMagic template. IMPORTANT GUIDANCE: 1. Output format → what user gets: - 'docx' → a single Word .docx file - 'pdf' → a single .pdf file - 'html' → a single .html file - 'all' → a ZIP containing all three (DOCX + PDF + HTML) 2. If the user is ambiguous (e.g. 'convert this'), ASK which format they want before calling. Don't assume. 3. Filename: if the user attached a file (e.g. 'mydoc.md'), pass its base name as fileName. Otherwise the API derives one from the markdown's first H1. Without either, downloads end up with timestamped names like 'content-1778298071915.docx' which is bad UX. 4. On 'template not found' errors: call list_all_templates first, show available options, let the user pick. Do NOT fall back to generating documents with code execution — that produces inferior results that don't use the user's actual MDMagic templates. 5. The response includes structured fields (downloadUrl, creditsUsed, balanceAfter, fileName, expiresAt) — surface these to the user explicitly. Don't paraphrase. The user wants to know exactly what they spent and what's left. 6. Page sizes: A3, A4, Executive, US_Legal, US_Letter. Default A4. Orientation: Portrait or Landscape, default Portrait. 7. CRITICAL — newlines in `content`: markdown is line-sensitive. Headings (#, ##), tables (| ... |), lists (-, 1.), and code fences (```) ONLY work when each starts on its own line. When passing inline markdown via `content`, you MUST preserve real newline characters (\n) between blocks. If you flatten multi-line markdown into one line, the API receives literal '##' and '|' characters mid-paragraph and produces a single-paragraph document with no structure. Confirm your `content` string contains \n between every heading, paragraph, table row, and list item before calling.
    ConnectorNo auth
  • Creates a new Word (.docx) document at `path` with the given text content (and an optional title rendered as the heading). The path must be somewhere LMCP can write; Desktop/Documents/Downloads may need a one-time Files-and-Folders grant (System Settings → Privacy & Security → Files and Folders). Returns {created, path}. For a OneDrive or Google Drive path use onedrive_write_file / gdrive_write_file; to append to an existing doc use word_append, to read one word_read.
    Connector
    Destructive
    OAuth
  • Check the build status of an EXISTING artifact (from artifact-create). Read-only. Generation is asynchronous, so this is how you find out it finished. Call it with { sessionId, wait: true } and it WAITS for you: the call returns as soon as status is 'ready' or 'failed', or after about 45 seconds still 'generating'. Then, you can call it again. This tool is meant to be called right after artifact-create, before replying to the user, and keep getting called until status is no longer 'generating'. ONLY when you want an instant snapshot, this tool can be called without wait (or false); the idea is to never spin on wait: false. Requires sessionId — the id returned by artifact-create (or the last path segment of an artifact URL like https://app.agentgrid.io/artifacts/<sessionId> or https://dev.animaapp.com/chat/<sessionId>). **Returns:** { success, sessionId, status: 'generating' | 'ready' | 'failed', progress (0–100, while generating), name, artifactUrl (generating/ready only), playgroundUrl (app and knowledge artifacts only, generating/ready only), previewUrl (app, knowledge and markdown artifacts only, generating/ready only), error (when failed), nextStep (when a wait returned still generating) }
    ConnectorOAuth
  • Insert one sync marker on a clip's transcript. Use this when: - The user is explicit about WHERE the camera should pause / cut (e.g. "sync the word 'submit' to 4.2s of the demo"). - `auto_sync` ran but missed a step you care about. How matching works: - `word`: case-insensitive, punctuation-stripped. The first match in the transcript is used unless `occurrence > 1`. - `occurrence`: 1-indexed — pass 2 to target the SECOND time that word appears, 3 for the third, etc. Required when the word repeats. - `timestamp_seconds`: clip-relative seconds. When the clip has run TTS already (`generated_timestamps` present), the server inverse-maps this to original-recording seconds automatically. Constraints: the clip MUST be a video clip with a source recording (otherwise the frame thumbnail can't be extracted). The transcript must already contain the word — if not, you'll get `word_not_found` with a 200-char excerpt of the transcript to help you retry.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Search and read UK guides on solar PV, heat pumps, batteries and MCS certification.

  • Congressional Documents — full-text search and retrieval over the official record of Congress…

  • Start a BuyerAware pre-purchase verdict on ONE used vehicle. Runs a mechanic-grade read: ranked failure points with $ exposure, recalls, seller-claim fact-check, fair price range, adjusted true cost, risk score 1-10, BUY / BUY_WITH_CONDITIONS / WALK_AWAY, a word-for-word negotiation script, and lower-risk 'Tank' alternatives. Supply whichever of listing_url, listing_text or vin you have — at least one is required, and more context sharpens the verdict. Takes ~1-2 minutes: returns a job_id, then poll get_verdict. Costs 1 credit. For 'what should I buy instead' use tank_alternatives, which is free.
    ConnectorNo auth
  • Convert a PDF into structured content (tables, charts, formulas, headings, body text) using a two-stage pipeline (layout detection, then a vision-language model) rather than a single VLM call on the raw PDF -- calling a VLM on a raw PDF directly is a known-unreliable pattern for numeric tables. Measured accuracy (500-page real-world benchmark of government/corporate reports, ~51,000 table values checked): tables 95.2% digit-exact, body text 88.8%. This tool reads PDFs a VLM cannot read directly, including scanned pages and PDFs with corrupted/garbled text layers (common in older Japanese academic PDFs). For scanned Japanese documents the numbers hold up (99.4% on the same benchmark). For scanned Arabic, body text does NOT: characters are dropped mid-sentence and quantities can turn into different quantities, so body blocks from scanned Arabic are always flagged confidence:"estimated" -- tables in the same documents stayed exact in our measurement. Strong on Japanese-language documents specifically; the accuracy figures above were measured on Japanese material and are not a claim about every language. Chart values are extracted but are best-effort estimates (about 52% exact match, excluding axis tick labels) and are always flagged confidence:"estimated" in the result -- do not treat estimated chart numbers as authoritative. This is a PAID, ASYNCHRONOUS, per-page-billed operation: credits are reserved from the caller's PDFIntact balance before processing starts, and the response's _meta.credits_remaining shows the balance right after reservation. Processing takes real wall-clock time (roughly 7 seconds/page; a 500-page PDF takes about 42 minutes including a multi-minute cold start), so this tool returns a job_handle immediately without waiting -- call get_result with that job_handle to poll for completion instead of calling convert_pdf again. Always pass idempotency_key; reuse the exact same value if you retry the same request, otherwise retries can double-charge and double-process. Provide the PDF either as a public https URL (source.type="url", up to ~200MB) or inline base64 (source.type="base64", up to ~20MB) -- prefer the URL form for large files. Requires sign-in (OAuth): this session is not authenticated, so calling this tool will fail until the PDFIntact account is connected and authorized.
    ConnectorNo auth
  • List invoices/quotes/credit-notes with totals, status, line items, client and payments. These are sales documents; for recorded income entries use list_income, and for raw bank-feed lines use list_transactions.
    ConnectorOAuth
  • Show every attempt made for one invoice and what came back. This is the tool that answers "why was it rejected". consult_invoice gives the status; this gives the tax authority's own code, its message, and the request and response exactly as they went over the wire. Read-only. It takes the invoice_id, like reissue_invoice — a rejected document has no access key to look it up by. Get the id from list_invoices. The rows are attempts, not documents: a reissued invoice has more than one, oldest first, and only the last describes the current state. Quote the authority's message rather than paraphrasing it; the code is what the user will search for.
    ConnectorNo auth
  • Read and edit the workspace pronunciation dictionary (Settings → Team → Pronunciation Dictionary). Use it whenever the user asks how a word, name or acronym is said. Do NOT respell the word in the voiceover script instead: the respelling shows in the script and captions, and every new video needs the fix again. An entry is WORKSPACE-WIDE: it changes the word in every video in this workspace; tell the user when you add or change one. It applies when speech is generated, so regenerate (voiceover_batch generate_speech) the clips that say the word. action: • list — entries for `language` ("" for all): {entries: [{word, spelling, ipa, language, case_sensitive}], count} • set — add or change `word`'s entry with exactly one of `spelling` (a sound-alike respelling, works on every voice; prefer it) or `ipa` (IPA phonemes, English ElevenLabs voices only, ignored on clips with [audio tags]). An existing entry is not overwritten: you get error "entry_exists" with `current`; show the user both, confirm, then call again with replace: true. • remove — delete `word`'s entry in `language` (exact spelling and casing) • to_ipa — convert `text` (e.g. a respelling) to IPA, to check an ipa entry before setting it Editing needs an editor or admin role and a plan with the dictionary; a refusal says which: tell the user, don't retry.
    Connector
    Destructive
    No auth
  • Hybrid search — combines keyword + semantic search via RRF. Uses Reciprocal Rank Fusion (RRF) to merge exact-word results with meaning-based results. **This is the recommended tool for "discourses about X" / concept queries**, because the semantic side catches suttas that discuss a concept using different vocabulary (e.g. some mindfulness-of-breathing suttas use `assasati/passasati/dīghaṁ` instead of `ānāpānassati`). ⚠️ **Send the question and nothing else. Do not pad the query.** The whole string becomes one vector, so every word you add moves it. Appending your own candidate terms — synonyms, Pāli equivalents, a keyword list — searches for the blend, not for the question. Measured on `Buddha flies in the sky`: asking it plainly put the right passage at **rank 1** (3 relevant suttas). Appending three guessed Pāli terms (`buddha, agga, sagga`) pushed it down to **rank 5** and left only 1 — because `agga` (supreme) and `sagga` (heaven) drag the vector toward their own meanings. Have candidate terms worth searching? Give them their own `search_by_keyword` call and merge the two result lists. One tool asks what a passage means, the other asks where a word occurs; combined into a single string they cancel out. Rewriting the question to sound more canonical does not help either — the same query phrased as `rose into the air and flew like a bird` scored **zero** relevant hits. 💡 **Hints for the AI client:** - English queries usually work best (e.g. `mindfulness of breathing`) because the embedding model is multilingual but EN-primary. - Thai stop-word handling is weak. If a Thai query underperforms, the AI client should translate to Pāli/English first (see server instructions). - The default `limit=5` is often too small for a topic survey — use `limit=15-20` (max 20) for good coverage. - `language` only chooses what comes back; it does not change what matches or how results are ranked. - Looking for a concrete thing rather than a concept (an animal, an object, a place)? `search_by_keyword` over `language="english"` is often better. The translations are segment-aligned to the Pāli, so one search for `turtle` finds every turtle passage whatever the Pāli underneath says (`kacchapa`, `kumma`, `maṇḍūkakacchapa`), and each hit still carries its segment id. - Ranking is by similarity, NOT canonical importance — locus classicus suttas (e.g. MN118, DN22) may rank below smaller suttas that happen to use the exact vocabulary. Treat results as a starting point, then call `get_sutta` for the canonical references.
    ConnectorNo auth
  • Retrieve a Lemma schema by its ID via GET /v1/schemas/{id}. A schema declares how documents of a given type are interpreted and normalized. Returns SchemaMeta { id, description? } with additionalProperties open — implementations commonly include a `normalize` artifact (WASM that maps raw documents to canonical form) and its content hash. Use this when you need to interpret attribute keys returned by lemma_query_verified_attributes.
    ConnectorNo auth
  • Use this when you need strong passwords with Web Crypto randomness: mode="random" builds character-set passwords (length plus uppercase/lowercase/numbers/symbols toggles); mode="memorable" builds word passphrases (words, separator, addNumber, addSymbol). Cryptographically random via Web Crypto (NOT deterministic). For test/dev fixtures — for real credentials prefer the client-side web tool at clean.tools/password-generator/ so the password never crosses the network. Example: {mode: "random", length: 16} -> mode "random", length 16, count 1, passwords ["NXqtsn6MrsfG9d2i"].
    ConnectorNo auth
  • Find signals by the words in them. Use this when you are looking for a subject — a storm name, a company, a phrase a report would print — and cannot name it as a category. When you can name it as a category instead (a country, a domain, a severity), scope_signals selects that slice exactly and does not depend on any particular word appearing; this tool ranks by word overlap and will miss a matching signal that phrased it differently. The search covers places, observations, summaries, identifiers, and the country and topic facets of each signal, so "Japan" reaches a Japanese-language article that never writes the word. A signal is returned when it contains the words you asked for. Inflections count: "flood" reaches "flooding" and "quake" reaches "quakes". Synonyms do not: the match is lexical, not semantic, so "car" does not reach "automobile" and "downturn" does not reach "recession". Use the words the source would have used. Results are ranked by how much of your query each signal contains, exact phrase matches first. When nothing contains your terms the tool returns an error rather than the closest available rows; an empty result means the wire does not carry it, not that the search gave up. Returns CWF lines.
    ConnectorNo auth
  • Analyze an audio file. Modes: - transcript: Speech-to-text with word-level timestamps — returns `{language, full_text, words}` where each word is `{word, start_ms, end_ms, punctuated_word}`. ⚠ MILLISECONDS here; get_clip's `voiceover_words` gives the same words in SECONDS as `{word, start, end}`. Use for caption timing, script editing, or word-level visual sync. Works on narration and on sung lyrics: the provider is picked from the content, and if it returns nothing the other one is tried automatically. So an empty `words` means the audio genuinely has no intelligible speech, not that the wrong engine ran. - silences: returns `{silences, total_silence_ms}`, each span `{start_ms, end_ms, peak_db}`. Use for auto-trim, smart-split, or pause-aware editing. - beats: returns `{tempo_bpm, beats_ms}` — beats_ms is an array of MILLISECOND positions. Empty for non-music. Use to align animations/zooms to a beat. - features: returns `{duration_ms, peak_db, rms_db, lufs, has_music, has_speech, speech_share}` — loudness plus two INDEPENDENT hints — `has_music` (beats hold a steady period) and `has_speech` (at least 40% of the audible seconds sound like talking; `speech_share` is that share, 0-1). Instrumentals read false; so do sung vocals and narration under a loud bed, so when the words matter, use transcript. Cheap dispatcher — call once to pick a mode, or for duration_ms to pass as add_audio's source_duration. - energy: loudness over time — `{samples_per_second, start_ms, db}`, db one RMS dBFS value per 1/samples_per_second s from start_ms (default 4 a second; energy_options.samples_per_second 1-20). Read builds, dips and hits from it. - sections: how a track is built — `{loud_db, sections: [{label, start_ms, end_ms, db, onsets_per_s}], drops: [{t_ms, rise_db, quiet_start_ms?, quiet_end_ms?}]}`, label intro | build | drop | main | breakdown | outro; a drop's t_ms is the hit (within ~10 ms), quiet_* the dip just before it. Set animation cues on beats (beats mode) or drops. - describe: what the audio IS — `{kind: speech|music|mixed, classification_confidence, duration_seconds, music?: {tempo_bpm, key, mood, genre, energy, instruments, description, suggested_search_query}, speech?: {...}}`. Pass suggested_search_query to find(type='music') for a similar track. Speech is not transcribed here; use transcript for the words. Source: provide exactly one of mcp_upload_id (from upload tool) or file_url (already-public URL, e.g. a find(type='music') result or Clueso CDN file). Optional time range: range_start_ms / range_end_ms crops the analysis window.
    ConnectorNo auth
  • Quick pre-publish compliance gate before generating a listing. Fast, free scan for obvious red-line words and category risks. Returns a shallow pass/fail-style result, not a full audit. Use this as a cheap pre-check right before generation. Do NOT use it for a complete risk report - use compliance_scan for the deep knowledge-base audit. Read-only; requires an API key; no credits deducted. Args: text: listing copy (required). lang: zh or en (default en). category: optional category hint, e.g. electronics or apparel.
    ConnectorNo auth
  • Find signals by the words in them. Use this when you are looking for a subject — a storm name, a company, a phrase a report would print — and cannot name it as a category. When you can name it as a category instead (a country, a domain, a severity), scope_signals selects that slice exactly and does not depend on any particular word appearing; this tool ranks by word overlap and will miss a matching signal that phrased it differently. The search covers places, observations, summaries, identifiers, and the country and topic facets of each signal, so "Japan" reaches a Japanese-language article that never writes the word. A signal is returned when it contains the words you asked for. Inflections count: "flood" reaches "flooding" and "quake" reaches "quakes". Synonyms do not: the match is lexical, not semantic, so "car" does not reach "automobile" and "downturn" does not reach "recession". Use the words the source would have used. Results are ranked by how much of your query each signal contains, exact phrase matches first. When nothing contains your terms the tool returns an error rather than the closest available rows; an empty result means the wire does not carry it, not that the search gave up. Returns CWF lines.
    ConnectorNo auth
  • List active shared files in the caller's org, newest update first. Each file includes ``public_url`` (the ``/s/{slug}`` link, or ``/s/{share_token}`` if no slug) when published, plus ``slug`` and ``share_token``. Use ``query`` to find a file by title without listing everything — e.g. ``file_list(query="yield vault")``. Pass ``work_id`` to list documents + the agent transcript on a task (Storage artifact joins; transcripts stay on ``work_item_files``), or ``project_id`` for a project's documents. ``storage_list`` is canonical for every Storage join including blobs. ``project_id`` wins if both filters are set. Archived files stay joined but are omitted.
    ConnectorNo auth
  • Convenience tool: generate a new XRPL keypair and return the seed. ⚠ NOT RECOMMENDED FOR PRODUCTION. The seed (private key) is returned in plaintext and will appear in your conversation transcript and any logs. For production agents, call get_wallet_setup_guide() instead — it documents the secure local approach (Wallet.generate() + seed in .env) where the seed never leaves your environment. Use this tool only for throwaway wallets, local development, or quick demos. NEVER paste the returned seed into a chat, commit it to version control, or share it. The wallet is NOT yet active on the ledger — fund it before use. XRPL requires 1 XRP minimum to activate a wallet (base reserve). Until funded: - You cannot sign or submit transactions - You cannot be the destination of an EscrowCreate (buyer's tx will fail) - Your trust score will show as 0 / "not found"
    ConnectorNo auth
  • Generate an executive-level strategic review report for an idea, synthesising all available validation data (market research, competition, SWOT, revenue model, VC score) into a concise go/no-go assessment with actionable recommendations. Requires prior validation data (run request_revalidation first if none exists). Returns cached report instantly if one exists, otherwise generates fresh analysis. Spends 2 credits only when generating new content. Not read-only; pass an ideaId you own.
    ConnectorNo auth