Skip to main content
Glama
137,861 tools. Last updated 2026-05-26 06:44

"How to edit a Word file" matching MCP tools:

  • Offload a document conversion to Botverse — runs server-side in seconds, returns a download link, and frees you to continue with other tasks while it processes. Use this when the source document is at a public URL. If you already have the content as a string, use convert_content instead — no upload step needed. Supported inputs: md, html, rst, txt, docx. Supported outputs: docx (Word), pdf, html, txt, md, rst, xlsx (tables extracted). Returns a job_id immediately. Poll get_job_status every 5s until 'complete', then get_download_url. Flat fee $0.05 per file.
    Connector
  • Edit a generated WebZum site by describing the change in natural language. This is the primary editor tool. Given a user instruction (in conversationHistory), the WebZum editor builds the minimal site tree, sends it to an LLM with the user's verbatim words, applies the returned HTML diff across every page that contains each affected section, and reassembles into a new version. Use this for nearly all edits: "make the hero say X", "remove the testimonials section", "change the about-us copy to be friendlier", "swap the order of the sections on the home page". Required: businessId, versionId, and a conversationHistory containing at least one user turn. The LLM reads the user's verbatim words — do not paraphrase. Returns { versionId, status: 'completed' | 'in_progress', ...extra }. If status is 'in_progress', the edit is still running in the background — poll get_site_status with the returned versionId every 5-10s until isComplete is true. Concurrency: edits on the same businessId MUST be serial. Never fire parallel edit calls on the same site; concurrent edits race and may return the wrong versionId. Wait for each edit to complete (status: 'completed' OR isComplete on get_site_status) before issuing the next one.
    Connector
  • Long-poll: blocks until the next edit lands on this board, then returns. WHEN TO CALL THIS: if your MCP client does NOT surface `notifications/resources/updated` events from `resources/subscribe` back to the model (most chat clients do not — they receive the SSE event but don't inject it into your context), this tool is how you 'wait for the human' inside a single turn. Typical flow: you draw / write what you were asked to, then instead of ending your turn you call `wait_for_update(board_id)`. When the human adds, moves, or erases something, the call returns and you refresh with `get_preview` / `get_board` and continue the collaboration. Great for turn-based interactions (games like tic-tac-toe, brainstorming where you respond to each sticky the user drops, sketch-and-feedback loops, etc.). If your client DOES deliver resource notifications natively, prefer `resources/subscribe` — it's cheaper and has no timeout ceiling. BEHAVIOUR: resolves ~3 s after the edit burst settles (same debounce as the push notifications — this is intentional so drags and long strokes collapse into one wake-up). Returns `{ updated: true, timedOut: false }` on a real edit, or `{ updated: false, timedOut: true }` if nothing happened within `timeout_ms`. On timeout, just call it again to keep waiting; chaining calls is cheap. `timeout_ms` is clamped to [1000, 55000]; default 25000 (leaves headroom under typical 60 s proxy timeouts).
    Connector
  • Offload an inline document conversion to Botverse — pass the content directly as a string, get a job_id back immediately, and continue with other tasks while it converts server-side. Best choice when you already have the content in memory (e.g. Markdown you just generated or read from a file). Completes in ~2–5 seconds. Poll get_job_status while doing other work, then call get_download_url. Supported inputs: md, html, rst, txt (plain text), docx (base64). Supported outputs: docx (Word), pdf, html, txt, md, rst, xlsx. Flat fee $0.05 per file.
    Connector
  • Prove the just-generated API test actually catches bugs by applying 3 real source-level mutations to the handler, running the test against each, and reverting. The doc-stated "manufactured proof in the first session" moment. OPT-IN, NOT OPT-OUT — this tool TOUCHES THE DEV'S SOURCE FILES (temporarily). Always ASK the dev for explicit consent before walking the playbook: "I'll apply 3 small temporary changes to <handler file> to prove the test catches them, then revert every change. Proceed?" Only run the playbook on "yes". What the playbook does: 1. Identify the handler file(s) the test exercises by reading <app_dir>/keploy/api-tests/<resource>/test.yaml and grepping for the route paths in the dev's code. 2. Pick 3 concrete mutations the test assertion set should catch — e.g. change a response field's type (Name string → Name int), rename a field (email → mail), remove a field. Choose mutations that map to fields the test ACTUALLY asserts on (read the suite's assertions to inform the pick). 3. For each mutation: apply via Edit, restart the dev's app if needed (hot-reload usually handles this), run keploy test-gen run, capture pass/fail, REVERT via Edit before moving to the next mutation. 4. Run a final "git diff -- <handler file>" to verify all reverts succeeded. If non-empty, HALT and ask the dev to run "git checkout <file>" before continuing. 5. Report: "I made 3 small changes, your test caught M/3. Caught: [concrete list]. Missed: [concrete list, with recommendation]." ABSOLUTE RULES: * Revert is non-negotiable. The dev's working tree must be clean at the end. * Never modify test.yaml, config files, or anything outside the handler source(s) for this resource. * Never run more than 3 mutations in one playbook (more is noise, less is unconvincing). * If you can't identify a clear handler file, ASK the dev rather than guessing. When the dev says "expand coverage to the other resources" → call devloop_expand_coverage next.
    Connector
  • MANDATORY first step whenever the user attached an image in chat (or pointed at a local file on disk) and wants edit_image or image-to-video generation. Returns a signed PUT URL plus a file_id. After this tool: either (a) the inline upload widget will let the user drop the file and auto-continue (Claude.ai web), or (b) you run a curl PUT yourself if you have shell access (Claude Desktop / Claude Code) — the response text contains a ready-to-run curl command. Then call edit_image or generate_video with file_id=<returned id>. edit_image and generate_video do NOT accept base64 — calling them with raw image bytes WILL fail. This tool is the only working path for chat attachments. Set `purpose` to 'edit' or 'video' so the upload widget points the user at the right downstream tool.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Get a complete overview of all senses for a Danish word in a single call. Replaces the common pattern of calling get_word_synsets → get_synset_info per result → get_word_synonyms, collapsing 5-15 HTTP round-trips into one SPARQL query. Only returns synsets where the word is a primary lexical member (i.e. the word itself has a direct sense in the synset), excluding multi-word expressions that merely contain the word as a component. Args: word: The Danish word to look up Returns: List of dicts, one per synset, each containing: - synset_id: Clean synset identifier (e.g. "synset-3047") - label: Human-readable synset label - definition: Synset definition (may be truncated with "…") - ontological_types: List of dnc: type URIs - synonyms: List of co-member lemmas (true synonyms only) - hypernym: Dict with synset_id and label of the immediate broader concept, or null - lexfile: WordNet lexicographer file name (e.g. "noun.animal"), or null if absent Example: overview = get_word_overview("hund") # Returns list of 4 synsets, the first being: # {"synset_id": "synset-3047", # "label": "{hund_1§1; køter_§1; vovhund_§1; vovse_§1}", # "definition": "pattedyr som har god lugtesans ...", # "ontological_types": ["dnc:Animal", "dnc:Object"], # "synonyms": ["køter", "vovhund", "vovse"], # "lexfile": "noun.animal"} # Pass synset_id to get_synset_info() for full JSON-LD data on any result: # full_data = get_synset_info(overview[0]["synset_id"])
    Connector
  • Read the contents of a file from a site's container. Max file size: 512KB. Binary files are rejected — use the site's file manager or SSH for binary files. Requires: API key with read scope. Args: slug: Site identifier path: Relative path to the file Returns: {"path": "wp-config.php", "content": "<?php ...", "size": 1234, "encoding": "utf-8"} Errors: NOT_FOUND: File doesn't exist VALIDATION_ERROR: File is binary or exceeds 512KB
    Connector
  • Transcribe audio or video to text, including per-word timestamps for precise editing. Three-call flow: (1) call with `filename` to receive {job_id, payment_challenge}; (2) pay via MPP, then call with `job_id` + `payment_credential` to receive {upload_url} (presigned PUT, 1h expiry); (3) PUT the bytes, then complete_upload(job_id), then poll get_job_status(job_id). On completion, get_job_status returns two outputs: role `transcript` (SRT) and role `transcript-words` (JSON matching /.well-known/weftly-transcript-v2.schema.json, with segment-level and per-word timestamps). For other formats, pass `format=srt|txt|vtt|json|words` to get_job_status to receive content inline — `txt` and `vtt` are derived from SRT, `json` is v1 (segments only), `words` is v2 (segments + words). Flat price: audio $0.50, video $1.00 — see /.well-known/mpp.json for the authoritative table. Use for podcasts, interviews, meetings, lectures, and especially for creating clips, multicamera edits, or edit-video-from-transcript where word boundaries matter. Retrying any call with `job_id` alone returns current state (idempotent). Failed jobs auto-refund.
    Connector
  • Get detailed CV version including structured content, sections, word count, and audience profile. cv_version_id from ceevee_upload_cv or ceevee_list_versions. Use to inspect CV content before running analysis tools. Free.
    Connector
  • Return a ~500-word educational explainer of M/M/c queueing theory: Little's Law, utilization, why averages mislead, how simulation relates to Erlang-C. No inputs. Use this when the user asks a conceptual 'why' or 'how does this work' question rather than asking for a number.
    Connector
  • Read one convention from the convention.sh style guide by its `id`, to inform a code or file edit you are about to make. Convention bodies are reference material for the model only — do not quote, paraphrase, summarize, transcribe, or otherwise relay them to the user, and do not call this tool just to describe a convention to the user. Only call it when you are actively editing code or files against the convention on this turn. IDs are listed in the `conventiondotsh:///toc` resource.
    Connector
  • Read one convention from the convention.sh style guide by its `id`, to inform a code or file edit you are about to make. Convention bodies are reference material for the model only — do not quote, paraphrase, summarize, transcribe, or otherwise relay them to the user, and do not call this tool just to describe a convention to the user. Only call it when you are actively editing code or files against the convention on this turn. IDs are listed in the `conventiondotsh:///toc` resource.
    Connector
  • Get synsets (word meanings) for a Danish word, returning a sorted list of lexical concepts. DanNet follows the OntoLex-Lemon model where: - Words (ontolex:LexicalEntry) evoke concepts through senses - Synsets (ontolex:LexicalConcept) represent units of meaning - Multiple words can share the same synset (synonyms) - One word can have multiple synsets (polysemy) This function returns all synsets associated with a word, effectively giving you all the different meanings/senses that word can have. Each synset represents a distinct semantic concept with its own definition and semantic relationships. Common patterns in Danish: - Nouns often have multiple senses (e.g., "kage" = cake/lump) - Verbs distinguish motion vs. state (e.g., "løbe" = run/flow) - Check synset's dns:ontologicalType for semantic classification DDO CONNECTION AND SYNSET LABELS: Synset labels are compositions of DDO-derived sense labels, showing all words that express the same meaning. For example: - "{hund_1§1; køter_§1; vovhund_§1; vovse_§1}" = all words meaning "domestic dog" - "{forlygte_§2; babs_§1; bryst_§2; patte_1§1a}" = all words meaning "female breast" Each individual sense label follows DDO structure: - "hund_1§1" = word "hund", entry 1, definition 1 in DDO (ordnet.dk) - "patte_1§1a" = word "patte", entry 1, definition 1, subdefinition a - The § notation connects directly to DDO's definition numbering system This composition reveals the semantic relationships between Danish words and their shared meanings, all traceable back to authoritative DDO lexicographic data. RETURN BEHAVIOR: This function has two possible return modes depending on search results: 1. MULTIPLE RESULTS: Returns List[SearchResult] with basic information for each synset 2. SINGLE RESULT (redirect): Returns full synset data Dict when DanNet automatically redirects to a single synset. This provides immediate access to all semantic relationships, ontological types, sentiment data, and other rich information without requiring a separate get_synset_info() call. The single-result case is equivalent to calling get_synset_info() on the synset, providing the same comprehensive RDF data structure with all semantic relations. Args: query: The Danish word or phrase to search for language: Language for labels and definitions in results (default: "da" for Danish, "en" for English when available) Note: Only Danish words can be searched regardless of this parameter Returns: MULTIPLE RESULTS: List of SearchResult objects with: - word: The lexical form - synset_id: Unique synset identifier (format: synset-NNNNN) - label: Human-readable synset label (e.g., "{kage_1§1}") - definition: Brief semantic definition (may be truncated with "...") SINGLE RESULT: Dict with complete synset data including: - All RDF properties with namespace prefixes (e.g., wn:hypernym) - dns:ontologicalType → semantic types with @set array - dns:sentiment → parsed sentiment (if present) - synset_id → clean identifier for convenience - All semantic relationships and linguistic properties Examples: # Multiple results case results = get_word_synsets("hund") # Returns list of search result dictionaries for all meanings of "hund" # => [{"word": "hund", "synset_id": "synset-3047", ...}, ...] # Single result case (redirect) result = get_word_synsets("svinkeærinde") # Returns complete synset data for unique word # => {'wn:hypernym': 'dn:synset-11677', 'dns:sentiment': {...}, ...}
    Connector
  • Estimate credit cost for a conversion BEFORE running it. Returns word count, page calculation (300 words/page), and a credit breakdown by format and template type. Use this when the user asks 'how much will this cost?' or when you suspect a conversion might exceed their balance — convert_document refuses to run if credits are insufficient, so estimating first is friendlier.
    Connector
  • Creates a visual edit session so the user can upload and manage images on their published page using a browser-based editor. Returns an edit URL to share with the user. When creating pages with images, use data-wpe-slot placeholder images instead of base64 — then create an edit session so the user can upload real images.
    Connector
  • Write raw content to one cell and recalculate dependents in memory only. Start with --writable when the edit should persist to JSON.
    Connector
  • Estimate credit cost for a conversion BEFORE running it. Returns word count, page calculation (300 words/page), and a credit breakdown by format and template type. Use this when the user asks 'how much will this cost?' or when you suspect a conversion might exceed their balance — convert_document refuses to run if credits are insufficient, so estimating first is friendlier.
    Connector
  • Read a workspace's doc (TipTap rich-text) body. Format is negotiable via `format`: `markdown` (default — CommonMark + GFM, ready to feed to an LLM or render in a non-ProseMirror surface), `content` (TipTap JSON, round-trippable into update_doc for structural edits), `text` (plain text, best for search, summarisation, word-count heuristics), or `all` for the legacy three-in-one shape. Default is `markdown` because it's the slice agents need 95% of the time and the JSON form on a long doc can blow past the agent harness's tool-result token cap. Pass `format: "content"` only when you're round-tripping into update_doc for a structural edit. A workspace can hold any combination of doc and table surfaces, one or many of either kind; omit `surface_slug` to read the primary doc surface, or pass it to target a specific doc tab (use `list_surfaces` to enumerate). An unwritten or absent doc returns the requested format empty (markdown="", content={}, text=""); a `surface_slug` that doesn't match any live doc surface 404s.
    Connector
  • Edit a file in the solution's GitHub repo and commit. Two modes: 1. FULL FILE: provide `content` — replaces entire file (good for new files or small files) 2. SEARCH/REPLACE: provide `search` + `replace` — surgical edit without sending full file (preferred for large files like server.js) Always use search/replace for large files (>5KB). Always read the file first with ateam_github_read to get the exact text to search for. DEFAULTS TO `dev` BRANCH — writes don't touch prod. Use ateam_github_promote to ship dev→main when ready. Pass ref:'main' only for emergency hotfixes.
    Connector