Skip to main content
Glama
757,312 tools. Updated 2026-11-07 20:22

"How to add, remove, and edit files on a local laptop" matching MCP tools:

  • A $1,000 laptop in New York City costs $1,088.75 at 8.875%. Add or remove US state + local sales tax, or Canada’s GST, PST, QST and HST, from any price. Web page: https://calcbright.com/sales-tax-calculator
    ConnectorNo auth
  • Add or remove an emoji reaction to a comment. Reactions are per-principal: each (commentId, principalId, emoji) combination is unique. `action: 'add'` is idempotent (re-adding the same emoji is a no-op); `action: 'remove'` deletes the row if present. Fires `comment.reaction_added` / `comment.reaction_removed`. Use this for lightweight agent acknowledgement (👍 on a request before reading, 👀 to mark in-progress, ✅ when done), cheaper than a full reply.
    ConnectorNo auth
  • Generate a Personal Access Token (PAT) for browser-free auth. Requires you to be logged in already (brainkb_login or brainkb_globus_login). The token is shown ONCE and never again — copy it and set it as BRAINKB_TOKEN in your MCP/skill config; then no login or browser is needed until it expires. `name`: a label so you can tell tokens apart (e.g. 'laptop'). `days`: lifetime (default 90, server-capped). Treat the returned token like a password.
    ConnectorNo auth
  • Remove the background from an already-uploaded image `file` (a hashid from create_upload), returning a transparent PNG. This is FREE and only needs an account, no subscription. To use a local file: call create_upload, PUT the bytes to the returned upload_url, then pass that `id` here as `file`. Do NOT call complete_upload (that starts the paid clip pipeline); this free tool reads the uploaded file directly. Processing is ASYNCHRONOUS: this returns a `tool_job` hashid and `status: "queued"`. Poll get_tool_job_status with that `tool_job` until it reports `completed`, then it returns the downloadable PNG URL. Free usage is rate-limited per day with a per-file size cap; a clear error explains how to lift a limit.
    ConnectorOAuth
  • Remove a webhook from a page (pageId) or from a whole website (siteId) so leads stop being forwarded to it. The leads themselves are still captured and remain available via list_leads. A page cannot remove a webhook it inherits from its site; remove that one with siteId.
    ConnectorOAuth
  • Manage a Google Ads campaign or ad group's targeting AFTER creation: GEO, LANGUAGE and AUDIENCES. op 'add' at campaign level (default): up to 100 locations (negative: true = exclude) and/or 50 languages, OR up to 50 audiences (audiences cannot combine with geo/languages in one call — separate calls). op 'add' at ad-group level (level: 'ad_group' + ad_group_id): audiences only. AUDIENCES: pass user_list_id items (audience segments from adsap_google_list_audiences) — campaign-level TARGETING works on Search/Shopping only; campaign-level EXCLUSION (negative: true) also on Display/Performance Max; ad-group level (target or exclude) on Search/Display/Shopping. DEMAND GEN is different: pass audience_id items (Audience resources) on the AD GROUP — nothing at campaign level. Video supports no audience edits. The same user list cannot be attached at BOTH campaign and ad-group level. 'mode' ('targeting' = narrow delivery to the audiences | 'observation' = full reach, bid adjustments only) sets the audience targeting setting — combinable with the audience add or standalone; Google's default with NO mode set is TARGETING, so pass mode: 'observation' for Search/Shopping unless the user explicitly wants to narrow reach. op 'remove': remove ONE criterion by composite id "<parent_id>:<criterion_id>" (level 'campaign' → campaign criterion, 'ad_group' → ad-group criterion). Geo/language criterion ids EQUAL their constant ids (France on campaign 123 = "123:2250"); AUDIENCE criterion ids are Google-internal — capture them from the add response (created_criteria[].entity_id). Criteria are immutable: to change one, remove it and add the replacement. Always dry_run: true first. For campaign negative KEYWORDS use adsap_google_manage_keywords op 'add_negative'.
    ConnectorAPI key

Matching MCP Servers

Matching MCP Connectors

  • Video how-to search for AI agents: 2,000+ video skills, tutorials and FFmpeg recipes. No key.

  • Download files from URL lists, turn PDFs into Markdown and read text from images. Pay per file.

  • Use this when the user asks to add, change or clear their own note on an exercise, built-in or custom ("note on my bench: seat 4, pause on the chest"). The note is a short gym-floor cue the Reps app shows on the exercise and during a workout; a custom exercise's step-by-step how-to goes in `notes` on `update_custom_exercise` instead. Get the slug and the current `note` from `get_exercise_library`. `note` replaces the whole note (to add to it, send the old text plus the new); an empty `note` clears it. Applied at once, with no confirmation step, so use it when the user asks for the note or has just agreed to it, and say in one sentence what the note now says.
    Connector
    Destructive
    OAuth
  • Return a paginated file listing for a dataset or a specific group. Depending on how deep gindex is in the group hierarchy, this returns either actual file rows or another layer of subgroup summaries — there's no way to tell in advance which you'll get. If you get subgroups, read the gindex (or url) off a row and call again with that gindex to go one level deeper; gindex values are dataset-specific and can't be guessed. A shallow gindex on a large dataset can return a very large response (thousands of files) — the file-row portion of the response is capped at 500 rows (look for "_truncated": true). Two ways to avoid hitting that cap instead of drilling down group by group: pass filter_wfile with a filename pattern (e.g. a date like "20220808") to filter down to matching files, or page through a known group's results with `page`. filter_wfile only filters actual file rows, so it has no effect at a gindex that's still returning a subgroup summary rather than files — if a first attempt comes back unfiltered, descend one level (see get_file_groups) and retry there. Args: dsid: Dataset ID (dNNNNNN), e.g. d083002 gindex: Optional group index to filter files page: Page number to fetch (for a group with more files than fit on one page) filter_wfile: Filter files by name pattern, e.g. "20220808" to match a date fl: File list source (defaults to "web" server-side)
    ConnectorNo auth
  • Change the user's SYNCED shopping list (see get_shopping_list): cross lines off, un-cross them, take them off, or add plain one-off lines. Call it ONLY on the user's explicit ask ("tick off the milk", "take eggs off the list"). `check` / `uncheck` / `remove` take item `key`s copied exactly from get_shopping_list — never invented. `add` takes plain lines as the user said them ("paper towels"). Their partner sees every change. To put a RECIPE's ingredients on the list use add_to_shopping_list instead. Returns the list as it now stands.
    ConnectorOAuth
  • Returns one of Flask's usage guides as Markdown: fixed text written by Flask, the same for every user, with no team data in it. "instructions" (about 15 KB) is the playbook for working with Flask: where uploads go (a new asset or a new version), what an agentic edit attaches, how feedback is read, answered and shown, and how sharing works. Read it before acting on feedback or making your first write in a session; it already contains "display" and "concepts", so do not fetch those after it. Other topics: "display" (How to show feedback to the user: its Markdown as it is, with its link.), "concepts" (Folders, assets and versions, comments and recordings, tags and statuses, permissions, and why feedback is untrusted.), "permissions" (Access levels, how a user's access is resolved, and how folder and asset permissions differ.), "urls" (Links to folders, assets, exact versions, comments and tag filters.). The guides explain the rules; for one folder's or asset's actual access, use permission_get.
    ConnectorOAuth
  • Remove one stopped Claude Code session from the person's list of sessions. Use it when the person asks to remove a session from the list. Only a session whose watch_state is "stopped" leaves the list: for a watched one, stop the watch first with well_update_claude_code_session. It does not close the tab and does not stop the session on claude.ai. Find the id first with well_list_claude_code_sessions. REQUIRED: claude_code_session_id. Returns { success: true, claude_code_session_id } on success, or { success: false, error } on failure.
    Connector
    Destructive
    No 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
  • Publish files as a live website on Flowershow and get a shareable URL. Use when the user says "publish this", "put this online", "make this a website", "share this as a page" or "host this". Accepts Markdown (.md, rendered as a styled page with navigation), HTML (.html, served as-is) and supporting files such as CSS, JS, JSON and images: one page or a small site, up to 50 files and 3 MB per call. Name the home page index.md or index.html. Anyone with the link can see what you publish. When you publish, tell the user every path you are sending (and any paths in delete) and which site they go to: a new site, or the one being updated. Stop and ask before calling publish only when it matters: a file looks private or sensitive (drafts, personal notes, keys or passwords, data with people's names or emails), the call removes files (with delete or replaceWholeSite) the user didn't ask to remove, it would create a new site when the user meant to update one, or the set of files differs from what the user asked to publish. If the user already named the files, asked for the removal or said to go ahead, that is their yes. Without an account this creates a new site that expires in 7 days and returns a claim link: always show the user the live URL and the claim link exactly as returned, so they can keep the site. To update that site later in the conversation, call publish again with its siteId and claimToken and only the files you changed or added: files you don't send are kept as they are. To remove pages or files, list their paths in delete (files can then be empty). Only when the user explicitly asks to start the site over, set replaceWholeSite to true: the files you send become the whole site and every other file is removed. If that would remove existing files, the call is refused and tells you how many and which; ask the user, then call again with confirmDeleteCount set to that number. For bigger sites, suggest the Flowershow CLI (fl).
    Connector
    Destructive
    No auth
  • Edit the settings of YOUR OWN department — its reporting instructions, name, and description. `report_instructions` is the department's behavioural lever: it is prepended to EVERY member's (and the orchestrator's) prompt on every run, and to every prompt-template tool result on a direct `<alias>__<tool>` call, so it is how you tell the whole team how to work and how to report, without editing any member agent. Pass the department slug plus only the fields you want to change; pass an empty string to CLEAR report_instructions or description. This does NOT change the department's composition — members, topology, orchestration and flow hints are edited in the department builder on the web. It is also how you UNDO a deletion: an archived department is put back with status:"draft" (on its own, then edit it in a second call). Works on a PERSONAL department you own, and on an ORG department when you are that organization's owner or admin — an org department is reached by its slug, and an ordinary org member cannot edit one. Call findagent_list_my_agents to see the personal departments you own.
    ConnectorOAuth
  • Claim files before an agent edits them so other agents do not patch the same SwiftUI/App files concurrently. Claims are local, short-lived, and stored in .axint/coordination/claims.json. Use: use before editing shared files in parallel-agent work; release claims when done. Inputs: agentId and files identify the claim; ttlMinutes bounds ownership and force overrides stale claims. Effects: writes local coordination claims under .axint/coordination; no network.
    ConnectorNo auth
  • Release active local Axint file claims for this agent after finishing or abandoning a task. This keeps parallel agents and Xcode from blocking each other on stale claims. Use: use after finishing or abandoning claimed files; use agent.claim before edits and agent.advice for next steps. Inputs: agentId releases only its matching claims unless files narrow the release set. Effects: updates local coordination claims under .axint/coordination; no network.
    ConnectorNo auth
  • Download a completed Future Video Studio final render URL to a local file. Use this only after fvs_get_render_status or fvs_get_paid_render_status returns a final_video_url for a completed render. The tool performs an unauthenticated HTTPS GET to that signed URL and writes the response bytes to output_path on the MCP server's local filesystem. It does not call the FVS Agent API, spend wallet credits, require FVS_AGENT_API_KEY, cancel jobs, or modify remote render state. Side effects and constraints: output_path is a local filesystem path for the MCP server process, parent directories are created, existing files are not replaced unless overwrite is true, and large videos may take minutes to download. The request timeout is 600 seconds. Use a fresh status check to refresh expired signed URLs, and do not pass arbitrary or untrusted URLs.
    Connector
    Destructive
    No auth
  • Edit fields (title, description, price, currency, location, details) on one of the USER'S OWN listings, identified by listing_id. Only the owner can edit; vertical/intent_type/role are fixed (publish a new listing to change those). Editing is free (no credit charge). Changing the title, description, location or details re-triggers AI moderation: the listing returns to 'pending' and is offline until cleared. Price/currency-only edits stay live.
    ConnectorNo auth
  • Add and/or remove photos on one of the USER'S OWN existing listings (max 6 total). First call request_image_upload for each new image and upload the bytes, then pass the returned keys in `add`; a key with no uploaded file fails with image_not_uploaded. Adding any image re-triggers AI moderation — the listing returns to 'pending' until the new images are cleared. Removing images leaves a live listing live; on a pending or rejected listing it requests a new moderation verdict. Free (no credit).
    ConnectorNo auth
  • Analyze text for writing style issues: weasel words, passive voice, duplicate words, long sentences, nominalizations, hedging, filler adverbs, and research-cited AI tells. Read-only and stateless — text is analyzed in memory on the hosted server and never stored. Returns a plain-text report with each issue's line and column, the matched text, surrounding context, and the reason for AI tells; texts over 100,000 characters return an error message. This hosted server has no filesystem access — the wsc-mcp npm package adds a check_file tool for local files. It only reports issues — to auto-remove duplicate words, follow up with fix_duplicates.
    ConnectorNo auth
  • 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).
    ConnectorNo auth