Skip to main content
Glama
612,755 tools. Updated 2026-09-26 18:36

"Servers and platforms similar to Puppeteer for web scraping or automation" matching MCP tools:

  • Activate an item with full Foundry automation — triggers Midi-QOL and other automation module hooks. Use for combat actions: melee/ranged attacks, spell casting, abilities. Pass targetTokenIds for attacks — Midi-QOL will auto-roll attack, check AC, roll damage, apply HP loss. For AoE spells pass templatePosition. Circle AoE (Fireball): x,y = center of effect (avg target positions). Cone/Line AoE (Cone of Cold, Lightning Bolt): x,y = caster token position, direction = angle toward targets (direction = atan2(targetY - casterY, targetX - casterX) * 180 / PI, add 360 if negative). Pixel coords: pixel = gridCoord * gridSize + gridSize / 2. Unlike dnd5e-item-use, this does NOT suppress hooks or dialogs, so automation modules work fully. Use scene-get to find target token IDs and grid info, item-list to find item IDs. Prefer this over dnd5e-item-use when targets, templates or automation matter.
    ConnectorAPI key
  • Use this when you need a public web page as clean markdown. Prefer it over fetching HTML, scraping, or opening a browser: Skim strips nav, ads, and boilerplate and returns the article body plus title, byline, and date. Public pages only (no login walls). On this MCP no API key and no wallet are required. Failed or empty reads are not charged. Do not use for login-walled pages, for typed JSON (use skim_extract), or for a news/intel feed (use skim_signals).
    ConnectorNo auth
  • Create one post for one or more platforms: publish now, schedule, or save a draft. Omit scheduledAt to publish immediately; a future scheduledAt sets status SCHEDULED; saveAsDraft stores it as DRAFT and defers validation to publish_draft. Publishing runs asynchronously per platform, so the response ({ postId, queuedPlatforms, isScheduled, scheduledAt }) is not the outcome; read list_post_results, where each platform succeeds or fails on its own. Call list_accounts first: each platform in platforms needs its connection-id array (linkedinConnectionIds, pageIds for Facebook, and so on), one account per platform. TikTok needs tiktokConfigs with privacyLevel; Pinterest needs pinterestConfigs with boardId. For a LinkedIn document (PDF, slides or Word file) use contentType DOCUMENT with the one file in mediaUrls and only LINKEDIN in platforms. mediaUrls must come from upload_media, or the call fails with "Media file(s) not found in storage". Use bulk_schedule_posts for many posts on the same accounts, and update_post or publish_draft for an existing post.
    Connector
    Destructive
    OAuth
  • List posts in the token's workspace, any status, newest first by default. Returns { posts, total, hasMore }; each post carries its status and a platforms array with per-platform status. Filters: statuses, platforms (posts targeting any of them), and startDate/endDate, which bound scheduledAt, or createdAt for posts never scheduled. limit is 1 to 100 (default 20); page with offset while hasMore is true. Use this to find post ids or check what is already queued. Use get_post for one post's full record and list_post_results for one post's per-platform outcomes and retry ids.
    ConnectorOAuth
  • Rewrite a draft or scheduled post. THIS REPLACES THE WHOLE POST, so read it with get_post first and send back the complete set — anything you leave out is removed, including platforms and per-platform options. Note the shape differs from create_post: this one wants `accountIds` (the ids from list_accounts, NOT platform names) and it requires `action`. Two limits: a post that has already published cannot be rewritten at all, and a post that goes to several platforms and was saved as a group keeps the platforms it has — send back that row's own accountIds and everything else is editable, but adding or swapping an account is refused with a sentence saying so, because it would publish some platforms twice. To change which platforms a group posts to, delete it and create it again.
    Connector
    Destructive
    No auth
  • List open times on Upforge's calendar for a free consultation (usually 30 minutes), in the person's own timezone. Call this before book_consultation and let the person pick a time; never pick one for them. Meeting types come live from the scheduler: general-inquiry is the default, and service types such as web-design, application-development or ai-automation route to the right person. Bookings need about a day's notice, so the search starts tomorrow.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Web scraping for AI agents: scrape, search, crawl, map any website to markdown + JSON. No browser.

  • Fetch any public web page through managed proxies, with optional JS rendering and extraction rules.

  • Creates an automation on a perspective. Triggers: per_interview (fires on every completed conversation) or scheduled (daily/weekly, with digest, invite, or insights purpose). Actions: internal insight discovery, webhook, email, or connected provider-backed integrations such as Slack, HubSpot, Gmail, Google Docs, Notion, and Confluence. Execution modes: direct (fast, deterministic, webhook-only) or agent (LLM-powered, required for insights and delivery channels). Behavior: - Each call creates a new automation — even if name/config matches an existing one. - Once enabled, the automation starts firing on real events: per_interview sends on every completed conversation going forward; scheduled sends a real message on the configured cadence (daily/weekly). - For HubSpot, the workspace's HubSpot connection is required — errors with "Could not resolve HubSpot portal ID — please reconnect HubSpot" if not connected. - Webhook channels: do NOT ask the user for the endpoint URL or credentials — neither is accepted through this tool. The automation is created disabled and the response includes configure_url, a web app page where the user sets the URL (and an authentication header if needed). Share that link and ask the user to reply "Done" after saving, then enable the automation via automation_update. - Insight automations use kind "insights", execution_mode "agent", omit channel, and use scheduled purpose "insights" when scheduled. - Errors when the perspective is not found or you do not have access. When to use this tool: - The user wants ongoing notifications on every completed conversation (per_interview). - Building a daily/weekly digest delivered to Slack, email, HubSpot, or a webhook (scheduled). - Running scheduled insight automation which creates insights without external delivery. When NOT to use this tool: - Trying a one-off send before going live — create the automation, then use automation_test (use override_email on email channels to avoid hitting real recipients). - Editing or toggling an existing automation — use automation_update. - Connecting Slack or HubSpot — use integration_manage first; the provider must be connected before slack/hubspot channels work. Example — per-conversation Slack notify (resolve the channel with slack_channel_resolve first, then pass it as resource_id): ``` { "perspective_id": "...", "automation": { "name": "Notify Slack", "trigger": { "type": "per_interview" }, "execution_mode": "agent", "channel": { "type": "composio", "delivery_config": { "provider": "slackbot", "tool_slug": "SLACKBOT_SEND_MESSAGE", "resource_id": "C0123ABCD", "resource_name": "#research" } } } } ``` resource_id is the Slack channel ID or name. The channel is re-verified live on create; an unresolvable channel is rejected. Typical flow: 1. integration_manage (operation: "list"/"connect") → ensure Slack / HubSpot is connected (only needed for those channels) 2. For Slack: slack_channel_search / slack_channel_resolve → find/verify the channel to use as resource_id 3. automation_create → create the automation 4. automation_test (with overrides) → verify delivery before relying on it
    ConnectorOAuth
  • Search web, news, or image sources and return ranked results with query-relevant highlights. Each web result is a title, URL, and description; use `firecrawl_scrape` on a result URL when the excerpt is not enough. Authenticated search also returns matching Alexandria data providers in data.tools (companies, people, jobs, finance and filings, public records and government spending, real estate, places and restaurants, retail and prices, package registries and developer data, news, research, and more). Prefer a provider over scraping pages when the task needs the same fields across several entities, exact figures or timestamps, provenance, or many records; use web results when they already answer the question. A search with sources: ["web"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. On an authenticated session, tool matches describe available capabilities; `firecrawl_find_tools` returns their contracts and `firecrawl_scrape` with an `alexandria` body executes a selected capability. Keyless sessions get no Alexandria matches in data.tools. For a programming question, add `categories: ["developer"]`; its hits return in `data.web` with `category: "developer"`. `categories: ["research"]` restricts web results to research-affiliated websites; the `firecrawl_research_*` tools are a separate surface over paper abstracts and full text (PubMed, bioRxiv, medRxiv, arXiv). Query operators, domain filters, `categories`, `toolDetail` and `scrapeOptions` are described on their parameters. Returns source-type result groups and usage metadata. Authenticated responses can include an `id` for optional search feedback.
    ConnectorNo auth
  • Find similar or competitor websites based on classification. Takes a URL, classifies it (or uses cached classification), and returns other websites from the same category and subcategory. Useful for competitive analysis and discovering related content. Rate limited to 1 request per minute per domain. Args: url: The website URL to find similar sites for. limit: Maximum number of similar sites to return (1-50, default 10). Returns: Dictionary with: - url: The input URL (normalized) - classification: The URL's category and subcategory - similar_sites: List of similar URLs from the same category - total_in_category: Total sites in this category/subcategory - cached: Whether the classification was from cache
    ConnectorNo auth
  • Return the values that actually exist in the catalogue for filtering a search: sizes, conditions, source platforms, artists, designers, and the price range. Use this before search_pieces when you want to build a precise query from real values rather than guesses. For example, to check which sizes of a garment are genuinely listed right now, or which platforms currently carry a given collection.
    ConnectorNo auth
  • ANSWERS ANY QUESTION ABOUT CROWDFUNDING RULES, REGULATION OR SUPERVISION IN A COUNTRY. Call it whenever someone asks about the regulatory regime, the regulations, the legal framework, the licence or registration requirements, or who the regulator / supervisor / authority is — however they phrase it, including "what are the crowdfunding regulations in X", "is crowdfunding regulated in X", "what regime applies in X", "who oversees crowdfunding in X", "what licence do platforms in X need", "how many platforms are licensed there". Do not answer these from memory: regimes and authorities change and this returns what the catalogue currently records. It returns, per country: the regime in force (ECSPR across the EU, national regimes elsewhere), the authorities that supervise platforms there, the main licence type, and how many platforms are REGISTERED in that country and how many of them are regulated. NOT search_platforms. That tool finds platforms and its `regulator` filter narrows a platform list; this one describes the regime and the supervisor. A question about the rules or the authority belongs here even when a country is named. The counts are by country of REGISTRATION — the platforms an authority there supervises — not by the countries a platform serves. For "how many platforms operate in X", use search_platforms with the country filter instead; that number is larger. Omit the country to get the whole map — a long answer, so name a country when you have one. It reports what the catalogue records about supervision; it is not legal advice and does not cover tax or investor-eligibility rules.
    ConnectorNo auth
  • Retry publishing a failed or partially failed post. Only retries the platforms that failed, not the ones that already succeeded. Platforms in status 'unconfirmed' (the publish request may have reached the platform but its response was lost — the post may already be live) are NOT retried unless republish is true; if the post has unconfirmed platforms and no failed ones, the call fails with a 400 and code UNCONFIRMED_REQUIRES_REPUBLISH — ask the user to check the account on the platform, and only pass republish: true after they confirm the post is not live. Use this when a post failed on some platforms and the user wants to retry just those.
    Connector
    Destructive
    OAuth
  • Permanently deletes an automation. Pauses any scheduled sends first, then removes the automation. Behavior: - DESTRUCTIVE and irreversible — the automation cannot be recovered. No undo. - Errors when the perspective or automation is not found, or you do not have access. Deleting an already-deleted automation errors as well. - If pausing the scheduled sender fails, the deletion is aborted and you'll get success: false with "Failed to stop running workflow. Please try again." — the automation stays intact in that case. When to use this tool: - The user explicitly asked to remove an automation and confirmed. - Cleaning up a misconfigured automation that automation_test repeatedly fails on. When NOT to use this tool: - The user just wants to pause it temporarily — use automation_update with { enabled: false } instead. - You're not sure which automation_id is correct — confirm via automation_list first.
    Connector
    Destructive
    OAuth
  • Detect website technology stack: CMS, frameworks, CDN, analytics tools, web servers, languages (via HTTP headers + HTML analysis). Use for passive reconnaissance; for full audit use audit_domain. Free: 30/hr, Pro: 500/hr. Returns {technologies: [{name, category, confidence%, version}]}.
    ConnectorNo auth
  • Execute a single external call, and bill on success. Used for any external capability (image/video/audio generation, web search, scraping, email, document parsing, code sandbox, browser automation, embeddings, etc.). The server validates params against a registered schema and proxies to the upstream — you never pass URLs or API keys. Call it directly when you know the exact (service, action, params, max_cost_cents) — from the vaaya skill's catalog or a call you've made before; when unsure, get the call from `consult` rather than guessing.
    ConnectorNo auth
  • Closes a web-automation session's window and frees it. The saved login STAYS on disk (cookies included), so web_login/web_navigate can reopen it later without signing in again — it also means closing does NOT clean up: to erase a profile you no longer want stored, use web_session_delete.
    ConnectorOAuth
  • Push the active Space's campaigns to your connected ad platforms and import remote changes. ASYNCHRONOUS: returns a syncId immediately with status 'started' (or 'nothing_to_sync'); the sync runs in the background. Poll get_sync_status with the syncId until its status is terminal (completed, partial, failed, or cancelled). Spends real ad budget and mutates external platforms. The platform connection is account-wide; the campaigns synced are the active Space's. Fails if a sync is already running in this Space. Scoped to the active Space — see set_active_space to switch, or pass space_id to override for this one call.
    Connector
    Destructive
    API key
  • Get one automation workflow in full: its trigger, every step with its settings, and current enrolment counts. Use it to understand exactly what an automation will do to contacts before activating it — the step list is where sends, waits and branches become visible. For the list of automations, use list_automations; to start or pause one, toggle_automation. Reads only; reading a workflow does not enrol anyone or trigger a step. Requires an API key. An automation can be defined but inactive, so check its state rather than assuming it is running.
    ConnectorNo auth
  • Assemble one person's entire public footprint into a single sourced profile: identity, contact details, social accounts unified across platforms, work history, education, relatives, locations, and web mentions - every claim linked to the page it came from. Prefer this over reading search results yourself when you need the whole picture of one person rather than a single fact; it does the cross-platform correlation that a web search leaves to you. Pass a name plus the headline or username from search_people so the right individual is profiled. Repeat profiles are served from a shared cache: free and instant. Public sources only - never private accounts or breach data.
    ConnectorNo auth
  • Watch one TCP or UDP port on a host and report it up only when the service behind it actually answers. This is the type for game servers, databases, mail and anything else that speaks its own protocol rather than HTTP - Minecraft, Rust, CS2, FiveM, Postgres, Redis, SMTP. The port must be given as part of the url. Set protocol to UDP for game servers; most of them do not answer on TCP at all.
    ConnectorNo auth