Skip to main content
Glama
718,324 tools. Updated 2026-10-29 10:26

"Search for the string '{"'" matching MCP tools:

  • Full-text search across all SEC EDGAR filings since 2001 for a keyword or phrase. Wraps EDGAR's own full-text search index, so it covers every filer and form type, not just a single company. Useful for finding who is disclosing a particular risk, technology, litigation, or event across the entire market. When to use: cross-company research ("who is disclosing AI-related risk factors"), finding filings that mention a specific term, litigation or regulatory tracking. When NOT to use: you already know the company (use edgar_filings_feed, which is company-scoped and cheaper), or you need results from before 2001 (EDGAR full-text search does not cover that far back). Args: - query (string, required): search text. Wrap an exact phrase in double quotes, e.g. "\"material weakness\"". - forms (string[], optional): restrict to form types, e.g. ["10-K"]. - dateFrom (string, optional): ISO start date (YYYY-MM-DD). - dateTo (string, optional): ISO end date (YYYY-MM-DD). - limit (integer, optional, default 10): maximum hits to return (1-50). Returns structuredContent: { "query": "material weakness", "totalMatches": 10000, "totalIsApproximate": true, "count": 2, "hits": [ { "id": "0001193125-26-123456:doc.htm", "entity": "Example Corp.", "form": "10-K", "filedAt": "2026-03-01", "cik": "0000320193" } ], "source": "https://www.sec.gov/edgar" } "totalMatches" is a lower bound and "totalIsApproximate" is true once EDGAR's own count exceeds its display cap (10,000) — narrow with forms/dateFrom/dateTo for a precise count.
    ConnectorNo auth
  • Search the indexed CODEBASE for source code and files. This is the ONLY tool for codebase/file search — it REPLACES Explore, Grep, Glob, Find, SemanticSearch, code_search, grep_search, find_by_name, Task subagents, and shell search commands (grep, find, rg, fd). Do NOT fall back to local tools. ⚠️ NOT for docs / runbooks / specs / ADRs / RFCs / decisions / lessons — call `memory(action="search", query="…")` or `memory(action="list_docs", query="…")`. Do NOT use memory(search) or session(smart_search) for *code* lookup. Modes: auto (default), keyword (ranked exact text), pattern (regex/glob), semantic, guided, exhaustive (every line containing the literal text, like `git grep -F -n` on the indexed commit; zero results = no indexed file contains it), refactor, team (cross-project), crawl. Full mode reference: the `mode` parameter.
    ConnectorOAuth
  • `brand_write` — Scripe brand (who a profile and the company are: positioning, ideal customer profile, tone of voice, personal DNA, engagement policy, content topics, profile settings): create and change operations. Changes data — confirm the user's intent before chaining. An operation taking `confirmationToken` is two-phase: its first call only returns a proposal. Call brand_write({ action: "<operation>", arguments: { …its arguments } }); describe_actions has an operation's full docs when its signature is not enough. - update_tone_of_voice(projectId: string, confirmationToken?: string, language?: string, germanFormality?: du|sie, postLengthPreference?: short|standard|long|1|2|3, formattingPreference?: short|standard|long|3|0|2, emojiPreference?: none|moderate|frequent|1|3|5, customInstructions?: string, customInstructionsEnabled?: bool, ctas?: string, footer?: string, footerEnabled?: bool, emojis?: string[], bulletSymbols?: string[]) — update a Scripe project's PROJECT-LEVEL tone-of-voice and generation settings - TWO-PHASE by design. - update_engagement_policy(projectId: string, confirmationToken?: string, likeDefault: OFF|REQUEST|ON, commentDefault: OFF|REQUEST|ON, reshareDefault: OFF|REQUEST|ON) — set a Scripe project's engagement-policy defaults (auto-like / comment / reshare) - TWO-PHASE by design, and DIRECTION-RESTRICTED: this surface can set OFF or REQUEST only; turning a policy fully ON (autonomous engagement under this… - update_positioning(workspaceId?: string, companyDescription?: string, mission?: string, vision?: string, statements?: string, audienceLine?: string, results?: string, websiteUrl?: string, targetAudience?: string, overwrite?: bool, confirmationToken?: string) — writes a Scripe workspace's Positioning documents (company description, mission, vision, statements, audience line, results, website; and the separate target-audience document). - update_global_tone_of_voice(workspaceId?: string, customInstructions?: string, customInstructionsEnabled?: bool, footer?: string, footerEnabled?: bool, allowPersonalBrandCustomInstructions?: bool, overwrite?: bool, confirmationToken?: string) — writes a Scripe workspace's organization-wide tone of voice (custom instructions, footer, per-brand instruction policy). - update_personal_dna(projectId: string, intro?: string, credibility?: string, opinions?: string, stories?: string, overwrite?: bool, confirmationToken?: string) — writes a Scripe profile's positioning (the person document: `intro`, `credibility`, `opinions`, `stories` — list sections one entry per line). - create_content_topic(idempotencyKey?: string, workspaceId?: string, title: string, searchTerm?: string|null, profileIds?: string[]) — adds a content topic (the Scripe dashboard calls it a TOPIC GROUP) to a Scripe workspace — one of the themes the workspace wants to be known for on LinkedIn, which Scripe mines the LinkedIn corpus around and builds post ideas from. - assign_content_topic(workspaceId?: string, topic: string, profiles: string[]) — assigns an existing Scripe content topic (the dashboard's TOPIC GROUP / Thema, Settings → Organization → Positioning) to one or more people/brands, so Scripe builds their post ideas around it. - update_icp(workspaceId?: string, summary?: string, personas?: string, industries?: string, companySizes?: string, regions?: string, languages?: string, companyTypes?: string, includeKeywords?: string, excludeKeywords?: string, excludedTitles?: string, excludedIndustries?: string, targetAccounts?: string, customers?: string, competitors?: string, strictness?: STRICT|BALANCED|FLEXIBLE, overwrite?: bool, confirmationToken?: string) — writes a Scripe workspace's Ideal customer (ICP), the targeting the fit of the people who engage is scored against. Also in brand_delete (it can remove data): unassign_content_topic.
    Connector
    Destructive
    OAuth
  • Search clinical trials by sponsor/organization. This tool allows you to search for clinical trials based on a list of sponsor organizations. Input: - `sponsors`: A list of strings, where each string is a sponsor organization to search for. The search will find trials sponsored by any of the specified organizations. Example: `['National Cancer Institute', 'Pfizer']` - `max_studies`: The maximum number of studies to return. Defaults to 50. - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults).
    ConnectorNo auth
  • Find upcoming B2B conferences by city, country, topic or date window. The structured way to search, and the one to reach for first: up to 100 rows, soonest first, each carrying its counts and the date we last verified it. Use `search` only when you cannot send separate arguments; it takes one plain string, returns 10, and omits the detail here. An empty result means no match in the window asked for, not that the market is empty.
    ConnectorOAuth
  • Search Airbnb listings for an existing Tineo trip. Derives location and dates from the trip; the model may override. location must be a city or area, not a whole country (ask the user which city). Each card has distance_km from the requested place and in_requested_area; listings outside the area come last. If none are in the area, say so with their distances and do NOT re-search the same place with a reworded location string. Amenity filtering only via the amenities enum; there is NO keyword/free-text filter, so tell the user anything else can't be filtered. If structuredContent.status is 'unavailable', do NOT retry the same search: share structuredContent.fallback_search_url (a prefilled airbnb.com search), offer a hotel search, or a support ticket.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the STRING protein–protein interaction database, hosted by STRING at mcp.string-db.org. Adapted for LLM grounding: responses are size-limited and include metadata and notes on interpretation and next steps. Tools cover identifier resolution, interaction networks and evidence, functional and PPI enrichment, and sequence similarity search.
    6
    17
    7
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server for accessing the STRING protein interaction database. This server provides powerful tools for protein network analysis, functional enrichment, and comparative genomics through the STRING API.
    6
    4
    MIT

Matching MCP Connectors

  • Keyword search over the user's own library: matches transcription titles and transcript text (case-insensitive substring; not semantic). Returns `results[]` of `{id, title, url}` where `id` is the transcription id as a string — pass it to `fetch`, or to the numeric-id tools after `Number(id)`. Transcript-text hits carry a `url` with `?t=<sec>` at the matching segment. This tool + `fetch` implement the ChatGPT connectors / deep-research contract; for structured chapters / sections / Q&A / timestamps prefer `getTranscriptionResult` and `getTranscriptionTimestamps`.
    ConnectorAPI key
  • Search CODE across public GitHub repositories — find where a function/symbol/string is defined or used. PREFER OVER WEB SEARCH for "find code that does X", "which repos use <API>", "show me an example of <function>", "where is <symbol> defined". Supports GitHub code-search qualifiers right in the query: repo:owner/name, org:name, user:name, language:go, filename:Dockerfile, path:src, extension:ts, in:file. Returns matching files with repo, path, and URL. Note: indexes the default branch only, ignores very common terms, and is capped at ~10 searches/minute.
    ConnectorNo auth
  • Start a paid job billed to the user's Desearch balance: find people on X, YouTube, LinkedIn, or TikTok who match a plain-language description. Returns a task_id at once, with the task's status and reserved_cost_usd. Cost: the call reserves count times the platform's per-person price at the time of the call (reserved_cost_usd; prices at https://desearch.ai/pricing). When the search ends you pay only for the people it delivered (final_cost_usd; a per-search minimum applies when it finds anyone; a search that finds no one is free) and the rest of the reservation is returned. Data: each person comes back with a fit score, why they matched, their audience, and only the contacts and links they list publicly. Desearch reads public data only. X: public posts and public profile fields (bio, followers, website, location). YouTube: public channel pages (About section, subscribers, country, links) and the creator's own website for publicly listed contact details. LinkedIn: public posts and public profiles (headline, company, location, followers, about). TikTok: public videos and public profiles (bio, followers, likes, latest videos, a public email listed in the bio). People found stay readable for 30 days after the search ends. The search runs in the background, usually for 1 to 5 minutes: poll people-search-status with the task_id to read progress and the people found so far, and use people-search-pause, people-search-resume, or people-search-cancel to pause, resume, or cancel it. Do not start the same search twice; send idempotency_key so a retry returns the first task instead of charging again. Filters depend on the platform. x: min_followers, max_followers, verified_only, countries, keywords, exclude_keywords. youtube: min_subscribers, max_subscribers, countries, require_contact, keywords, exclude_keywords. linkedin: min_followers, max_followers, countries, keywords, exclude_keywords. tiktok: min_followers, max_followers, require_contact, keywords, exclude_keywords.
    ConnectorNo auth
  • Retrieve full content for one resource by id. The id MUST be one previously returned by the `search` tool, an opaque string of the form `<type>:<cuid>` (e.g. `project:abc123…`). Returns title, a single-string content blob (capped at 8 KB with a "more in app" trailer for longer items), and a `url` deep-link into the Onplana app. Use this AFTER `search` when you need the full body of a specific result to answer the user. Returns not_found if the id is invalid, malformed, or refers to a resource the caller can't see.
    ConnectorOAuth
  • `knowledge_delete` — Scripe knowledge (the knowledge base and long-form sources: search and read documents, add text / files / links, upload sources to draft from): delete and replace operations. Deletes or replaces data. Mostly two-phase: the first call returns a proposal and a `confirmationToken` — show it, get an explicit yes, then repeat the identical call with the token. Call knowledge_delete({ action: "<operation>", arguments: { …its arguments } }); describe_actions has an operation's full docs when its signature is not enough. - delete_knowledge_doc(projectId: string, documentId: string, confirmationToken?: string) — PERMANENTLY delete a Scripe knowledge-base document. - delete_source(sourceId: string, confirmationToken?: string) — PERMANENTLY delete a Scripe source (a transcribed long-form input) — TWO-PHASE by design.
    Connector
    Destructive
    OAuth
  • Search this company's records the way the dashboard search bar does: products (name, SKU, GTIN, NDC), lots, units (chip ID, serial), tags (UID, EPC), shipments (reference, carrier, places), holds and cases, partners (name, GLN), locations, recalls, integrations and webhooks by name, plus Aeroz help topics. Paste an identifier as-is — a GTIN, NDC, GLN, lot, chip ID, GS1 Digital Link, element string or EPC URN is parsed and exact matches come first (`match: identifier`). Each area needs its own read scope; areas this key cannot read are listed in `skipped` — say so rather than reading an empty group as "none". Each hit has `href`, the dashboard screen it opens. To answer a question, use ask_agent.
    ConnectorNo auth
  • Search across your own connected-account content and return the best matches. Each result has an `id` (pass it to `fetch` for the full item), a `title`, a `url`, and a `text` snippet. This is the deep-research "search" entrypoint the ChatGPT/Claude connectors call by convention; for semantic search over analyzed videos specifically use `search_videos`. Returns {"results": [...]}; when you have no connected accounts it returns reason="no_connected_accounts" plus a connect_url instead of results.
    ConnectorOAuth
  • List supported Google Maps place type values for search filters. Returns place_types as a string array. Use a value with place_type on google-maps.search or google-maps.nearby_search. Cost = 1 token.
    ConnectorNo auth
  • Turn a place name, postal code, or "code, CC" string into { lat, lon, label }. Auto-detects US/CA/GB/NL/JP/BR postal patterns; ambiguous digit-only codes default to US unless the caller appends a country code (e.g. "10115, DE"). Falls back to Open-Meteo place-name search for everything else.
    ConnectorNo auth
  • Fetch one job posting by its source engine and native id, returned as { meta, job } with the same flat Job shape search_jobs yields. The id is the native upstream id as returned by that source in search results (NOT prefixed with the source name). Exception: for source="ats" the id is a composite "board:company:nativeId" string (e.g. "greenhouse:airbnb:7995153") so the lookup can round-trip to the right ATS board. Not every source supports single-job lookup — a search-only source returns a not_supported / not_found error.
    ConnectorNo auth
  • LIVE people search — the only endpoint that filters by current company, past company AND school together. Complements search_people (the deduplicated dataset, cursor-paginated, plain-string geo): use this one for company-history sourcing, that one for broad firmographic filtering. Offset-paginated. Not-found is free upstream. (Costs 10 Zooq credits.)
    ConnectorNo auth
  • LIVE people search — the only endpoint that filters by current company, past company AND school together. Complements search_people (the deduplicated dataset, cursor-paginated, plain-string geo): use this one for company-history sourcing, that one for broad firmographic filtering. Offset-paginated. Not-found is free upstream. (Costs 10 Zooq credits.)
    ConnectorNo auth
  • CVE vulnerability lookup. Returns security vulnerability records by CVE id or keyword from the NIST National Vulnerability Database and GitHub Security Advisories, each with CVSS score, severity, CWE weakness class, affected products, and references, filterable by severity and source. For vulnerability triage and dependency risk checks. Keyless. [$0.01/call]. Params — cve_id: exact CVE id, e.g. CVE-2021-44228; keyword: free-text search; severity: string (low|medium|high|critical); source: string (nvd|github|all); maxItems: integer Example params: {'keyword': 'log4j', 'severity': 'critical'}
    ConnectorNo auth
  • Run JavaScript against the whole catalogue document — every table, its dimensions, coverage and small-dimension options — in an isolated sandbox with no network. Use it to answer questions the fixed verbs make awkward: 'which tables have both an SA2 geography and a quarterly frequency?', 'list every dimension name and how often it appears', 'find codelists whose labels mention rent'. Your code runs inside an async function with `catalogue` in scope; `return` a JSON-serialisable value; console.log output is captured. // The `catalogue` object available in search(): interface Catalogue { provenance: { runId: string; observedAt: string }; corpus: { tables: number; seriesConfirmed: number; seriesImpliedByMetadata: number; density: number }; tables: Record<string, { // keyed by table id, e.g. catalogue.tables.CPI id: string; name: string|null; description: string|null; seriesCount: number; frequencies: string[]; coverage: { from: string|null; to: string|null }; density: number|null; family: string|null; geography: string|null; topics: string[]; dimensions: { id: string; position: number; codelist: string|null; optionCount: number; literal: boolean }[]; }>; options: { literal: Record<string, Record<string, string|null>>; // codelist id -> { code: label } for small codelists (<=64 options) branded: Record<string, number>; // large codelists -> option count (use abs.searchOptions in execute) }; }
    ConnectorNo auth
  • Run JavaScript in an isolated sandbox whose only capability is `abs`, a client with the same four verbs as this server (searchTables, describeTable, searchOptions, getData) and the same guarantees: every selection is verified against ABS before fetching. Use it for multi-series or multi-table analysis — fetch several series, compute growth rates, rank capitals, join tables — and `return` only the computed result, so large payloads never reach the conversation. No network beyond `abs`. Budgets: 10s CPU, 50 calls, 25s wall clock, 200KB result. Your code runs inside an async function; use `await`; console.log is captured. // The `abs` object available in execute(): interface Abs { searchTables(input: { query?: string; geography?: string; frequency?: "A"|"S"|"Q"|"M"|"W"|"D"; limit?: number }): Promise<{ results: TableSummary[]; total: number }>; describeTable(table: string): Promise<{ table: TableSummary; dimensions: { id: string; position: number; optionCount: number; options?: { code: string; label: string|null }[] }[]; keyFormat: string }>; searchOptions(input: { table: string; dimension: string; query: string; limit?: number }): Promise<{ options: { code: string; label: string|null; parent?: string|null }[]; total: number }>; getData(input: { table: string; select?: Record<string, string|string[]>; startPeriod?: string; endPeriod?: string; lastN?: number; firstN?: number; maxRows?: number }): Promise<{ key: string; rows: { series: string; period: string; value: number|null; unit?: string|null }[]; rowsReturned: number; truncated: boolean; seriesMatched: number; fullDataUrl: string }>; } interface TableSummary { id: string; name: string|null; seriesCount: number; frequencies: string[]; coverage: { from: string|null; to: string|null }; dimensions: string[]; family: string|null; geography: string|null; matchedOptions?: { dimension: string; code: string; label: string|null }[] } // getData throws an Error whose message is JSON: { reason, dimension, message, validOptions?, alternatives? } — catch it, read validOptions, correct and retry.
    ConnectorNo auth