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

"Integrating corporate Confluence with model access for search and document navigation" matching MCP tools:

  • Search the MITRE D3FEND catalog of defensive techniques by keyword, tactic, or targeted artifact. Default response is SLIM (drops `uri` from each row — saves ~60 chars/row, ~30% on popular drills); pass include='full' for the verbose record. Pass exclude_id when chaining from d3fend_defense_lookup to skip self in sibling-artifact searches. Use to discover defenses applicable to a given threat model — e.g. 'what defenses harden access tokens?' (tactic=Harden + artifact='Access Token'). Drill into d3fend_defense_lookup with any returned defense_id for the ATT&CK technique mappings. Free: 30/hr, Pro: 500/hr. Returns {query, total, results [{defense_id, label, uri (only when include=full), parent_label, tactic, artifact}], next_calls}.
    ConnectorNo auth
  • Search the user's files by filename and return matching documents in the deep-research result shape. ALIAS: this is the SAME search as search_files (same data, same permissions) - use it when your client requires the id/title/url search contract (ChatGPT deep research); otherwise prefer search_files for richer file metadata. Each result's id can be passed to fetch (or get_file) to read that document. Read-only; nothing is written, so it is safe to call.
    ConnectorNo auth
  • List the invoices this company issued, newest first. One document type at a time: pass nfse for services or nfe for goods. A company that issues both has to be asked twice. Use it for "my last invoices", "what was rejected today", and to find a document whose access key the user does not have at hand. Read-only. An authorized document is stored as issued, which is the value the rows carry; authorized is accepted as a synonym and asks for the same thing. Every row carries both identifiers the other tools need: id, which reissue_invoice takes, and access_key, which consult_invoice, cancel_invoice and get_invoice_pdf take. A rejected row has an id and no access key — the authorizer never assigned one.
    ConnectorNo auth
  • 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
  • The full public document for one dataset as Markdown: summary, facts, access instructions, and every table with its columns, types, descriptions and units. No account needed. Example: {"id": "kden-metar-hourly"} — the `id` is a slug from search, and a canonical dataset URL works too. Returns {id, title, text, url, metadata: {slug, publisher, published_at, table_count, topics}}. publisher is the account that published the dataset, not the source it was gathered from. Cite the dataset by `url`. For machine-readable table ids and schemas, call get_dataset and get_table_schema instead.
    ConnectorNo auth
  • Use when the user asks to inspect, summarize, or visualize an attached TFLite, ONNX, GGUF, SafeTensors, Core ML, or ExecuTorch deployment artifact. Opens a browser-local analyzer, returns a hash-bound format-neutral Model IR table and static evidence summary, and provides deterministic document views without executing model code. Do not use for training checkpoints, measured latency, task accuracy, clinical validity, regulatory compliance, or actual runtime placement.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Confluence MCP — wraps the Confluence Cloud REST API v2 (OAuth)

  • corporate-apology MCP — wraps StupidAPIs (keyless — no credential needed)

  • Discover the LinkedIn company pages this connected account administers. Reuse the selected data[].id (NOT mailbox_id) with the SAME account_id as post_as for linkedin_create_post, comment_as for linkedin_comment_on_post/linkedin_reply_to_comment, or react_as for linkedin_react_to_post/social_react_to_comment. Requires the company product selected in Hosted Auth; if access is refused, reconnect the SAME account with account_connect and select Company Pages. A company search result does not prove admin rights; never fall back to acting as the person.
    ConnectorOAuth
  • Inspect a fixed set of public machine-facing surfaces at the HTTPS origin derived from url. Use this before recommending or integrating a public agent-facing product; do not use it for an authorized customer's instrumentation state, use get_connection_health, and never treat the result as a security score. url path/query/fragment are ignored; redirects are not followed, credentials are never sent, direct/private-style or non-public DNS targets are rejected, and response bodies are bounded. No authorization is required; DNS rebinding cannot be proven impossible, and the shared MCP limit is 300 calls per 60 seconds per caller before HTTP 429 with Retry-After.
    ConnectorNo auth
  • High and low water times and heights at any coastal point, from the FES2022 global tide atlas: a list of events, each with type (high or low), time and height_m. Use it for when high or low tide is; for a continuous curve use get_tide_heights, and for tides together with sunrise, golden hour and moon phase use get_tide_window. Heights are metres relative to MEAN SEA LEVEL, not chart datum — never use for navigation. Defaults: from today, 2 days or the plan's limit if lower. Requires an API key on a paid Tides plan.
    ConnectorNo auth
  • Use when you have one exact offer ID and token usage and want its USD text-token subtotal. Discover the ID with list_models first. Total input includes cached input; do not add cached tokens twice. Excludes cache writes, storage, search, tool fees and taxes. Requires current reviewed, supported rates; does not invoke a model. Use compare_model_costs for several known offers.
    ConnectorNo auth
  • Short-lived direct link to blob storage, for large or binary files. With path, returns file_url for that one file (GET to download; PUT with header 'x-ms-blob-type: BlockBlob' to upload when access='readwrite'); saves made with it are recorded under your name. Without path, returns container_url and sas_token for the whole workspace, read only (access='readwrite' needs a path). No link deletes: use delete_file. For files up to 3 MiB, write_file is simpler.
    ConnectorNo auth
  • Check a supplied seller AND buyer together, returning combined readiness and separate evidence. Use before generate_invoice; use check_party for one party and validate_invoice for document rules. Each party needs siren, siret or vat; siret wins over siren. French identifiers or country_code=FR require SIREN/SIRET; a French lookup can derive omitted vat. Address fields activate address checks. requester_vat applies to both lookups but cannot replace either party's vat. Roles follow seller/buyer argument names; no invoice lines or full invoice body is needed. Makes at most two EU Verify requests with the caller's plan key; Pro/Scale enable register access. Returns status and parties.seller/buyer, each with status, reasons and available evidence. Only two positive results yield invoice_ready; any not_ready yields not_ready, otherwise inconclusive. Inspect both results: denied plans, invalid input, quotas and outages never establish readiness. No document quota is consumed; upstream limits still apply per lookup. Results may change on retry. No invoice is generated, stored or sent.
    ConnectorAPI key
  • Download one HKEx document by its URL and read, page through, or search its text. ``link`` must be an HKEx document URL from search_filings (host ``www1.hkexnews.hk``); any other host is rejected. With ``extract=True`` (default) the response includes up to 30 ``tables`` and a window of extracted ``document_text``: ``max_chars`` characters starting at ``offset``. Long reports return ``next_offset``; call again with it to read the next window. Pass ``query`` to search the whole document instead: the response then lists up to 20 case-insensitive matches with their offsets and surrounding text, plus ``match_count`` — use a match offset to read that part. Set ``extract=False`` for size and content type only.
    ConnectorNo auth
  • Retrieve the full record behind a search result: the complete meeting transcript (for meeting:… ids) or the full document text (for doc:… ids). Long records are truncated at a safe length with a marker. WHEN: After the search tool, to read a result in full before answering or citing. WHEN NOT: Ids are opaque — never construct one by hand; only use ids returned by search. EXAMPLES: { "id": "meeting:lehi-ut:1f0c…" } { "id": "doc:lehi-ut:1f0c…:42" } A not-found error means that specific id is stale or unindexed — re-run search for fresh ids; it is not an access restriction.
    ConnectorAPI key
  • Start a Brain document file upload (PDF, DOCX, TXT or Markdown, 10 MB max): returns a signed upload_url that the client PUTs the raw file to, with the returned content-type header, and an upload_id valid for 2 hours. Then call aidelly_complete_brain_document_upload with the upload_id. Works only for clients with direct network access to Supabase storage, such as Claude Code or a local CLI; the hosted server hides it from browser-sandboxed chat clients, which use aidelly_add_brain_document instead. Requires workspace settings permission. Retry-safe with the same idempotency_key.
    ConnectorNo auth
  • List the companies the signed-in user can access, newest first, each with only its id and name. It returns at most 25 and has no paging or search, so a user with more companies sees only the 25 most recently created. Call it first to find the company ID that other tools take as id or companyId, and use get-company for a company's next fiscal year end.
    ConnectorOAuth
  • List a company's bank statement transactions, newest first, paged, with totalCount. Each has acDocumentId, date, amount, currency, movement, bank account, title, description and status (documentRequired while it needs a document or coding). Pass acDocumentId as transactionId to get-transaction-conversation, add-transaction-comment or list-transaction-cashcoding-recommendations. It has no text search; dateFrom and dateTo are inclusive. For ledger entries in every account, use search-accounting-transactions.
    ConnectorOAuth
  • Update a page's SEO metadata: title, description, image (Open Graph image URL), index (whether search engines may index it), and jsonLD structured data. Partial update: fields you provide are changed, omitted fields are preserved. For JSON-LD prefer jsonLDPatch for surgical edits (changing one key cannot drop the rest of the document); use jsonLD only to replace or clear the whole document. Both are validated before saving: the document must be a schema.org node (object with @context and @type), an array of such nodes, or an object with @context and @graph. Does NOT change page content (use save_page_content or save_section_content for that) or the page's name and address (use update_page). Metadata has no draft and no history: on a published page the change is live at once, including index=false, which marks the live page noindex.
    Connector
    Destructive
    OAuth
  • Semantic search over academic references by title + abstract, across languages. Only references with an abstract (about half) are covered; use search_references for the rest. Runs the corpus model, EmbeddingGemma 2, locally with no API key (first use downloads ~350 MB). similarity_score only ranks within one query.
    ConnectorNo auth
  • Adds a party to a document, alongside any parties it already has. Use this tool when: - A contracting party is missing from a document, e.g. the counterparty of a contract created from scratch - A signatory has to be added for a party the document does not have yet: create the party first, then add the signatory with create-document-signatory Pass party_account_party_uuid to add one of the account's saved parties (list-account-parties), usually the user's own company. A saved party can be on a document only once, and is always internal. For any other party, give party_entity_name, party_address and party_scope instead. Parties cannot be added while the document is archived, in the signing stage or an approved stage, going through an approval checkpoint, or bound by a preemptive signature.
    ConnectorOAuth
  • Get a paginated list of the documents available to the current user. Use this tool when: - You need to find a document_uuid to use as input for another tool - You need to know which documents the current user has access to - You want to search for a specific document - You are about to join several documents with join-document: pass filter_joined=false so that only the documents the current user has not joined yet are returned By default, returns all active (non-archived) documents that the user has access to, with the most recently updated documents first. sort_by and sort_direction arguments can be used to control the sorting. Archived documents are included or targeted using the filter_archived_state parameter. To keep responses small, each document is returned as a compact summary by default. Use the include parameter to request additional sections (parties, teams, tags, details, signing_settings, timestamps) when the user's question needs them, and prefer get-document-info when you need full information about a single document. When you need particular metadata values for several documents, name those fields in include_metadata and they are returned for every document in the response. Do not call get-document-info once per document to collect the same fields — one list-documents call with include_metadata answers the whole question. When you already have the UUIDs of the documents you care about, pass them as filter_document_uuids and combine that with include or include_metadata to gather information about exactly those documents in a single call. # Each account has its own vocabulary — discover it before filtering Accounts classify their documents using structures they define themselves: tags, document types, metadata fields (and their select options), teams and parties. The words a user puts in a question are usually the words their own account already uses as labels. "our customers", "suppliers", "key accounts", "renewals", "EMEA" and "high value" all sound like descriptions of content, but each is far more likely to be a tag, a document type, or a metadata field or option in this account. Tags in particular are the account's own free-form classification labels, commonly covering relationship type (customer, supplier, partner, reseller), commercial significance (key account, strategic), lifecycle or region. A plain category noun in a question very often corresponds to a tag rather than to anything in the document text — so check list-account-tags whenever a question groups documents into a category that isn't available as a document type. These lookups are cheap and return small, complete lists, so look rather than guess: - list-account-tags: the account's classification labels - list-account-document-types: e.g. NDA, MSA, Customer Agreement, DPA - list-account-metadata: field names, value types and select option values - list-account-teams / list-account-parties / search-external-parties: teams and contracting entities # Decompose the request, then map every part to a filter A question usually contains several independent conditions. Handle each one separately: 1. Split the request into its conditions. "what logo usage rights do we have for our largest customers?" is three: "logo usage rights", "largest", "customers". 2. For each condition, ask what kind of structured thing it could be: a tag, a document type, a metadata field or option, a party (account or external), a document user, a team, a template, an automation, an import, a stage, or an origin. 3. Look up the candidates with the companion tools above, then filter with the matching filter_ parameter. 4. Only leave a condition to filter_query once you have confirmed that no structured filter covers it. Finding a structured filter for one condition does NOT mean you are done — work through every condition before answering. In the example above, "largest" is a currency metadata field such as contract value (filter_metadata range, or sort_by that field), "customers" is very likely a tag or a document type, and "logo usage rights" may also be available from a metadata. Answering with just one of the three silently answers a different question than the user asked. # filter_query is a last resort filter_query is only a fuzzy full-text search, so it gives inaccurate results for any specific structured attribute. This holds even when the request is phrased loosely or topically ("documents about product variant Alpha", "anything to do with Acme") — topical phrasing does NOT mean the term is free-text rather than a structured field or value. Prefer filter_query only for genuinely free-text conditions, or when the user is clearly searching by document name. If filter_query returns no results, do not conclude that no matching documents exist before checking whether the search term corresponds to a tag, a document type, a metadata field or value, or a party. If it does, retry with the matching filter_ parameter instead. # Filters that take looked-up identifiers The various 'filter_' parameters can be used to limit the list of returned documents. Several filters take identifiers or names you can look up with companion tools: - filter_account_parties: list-account-parties - filter_external_parties: search-external-parties - filter_automations: search-automations - filter_document_types: list-account-document-types - filter_document_users: search-document-users - filter_imports: search-imports - filter_metadata (field names, types and option values): list-account-metadata - filter_tags / filter_excluded_tags: list-account-tags - filter_teams: list-account-teams - filter_templates: list-templates # Parties vs. people, and account vs. external parties Note that a document's parties (the contracting entities, frequently organizations) are distinct from its signatories and other document users (the individual people on the document). A named person commonly signs or is involved on behalf of a party without being a party themselves — so to find documents involving a specific person, use filter_document_users rather than a party filter. Parties also come in two kinds. Account parties are the account's OWN entities — the company the user belongs to and its subsidiaries, group or parent companies; phrasing like "our", "we", "us", "my company" or "our subsidiary" points to an account party (look them up with list-account-parties and filter with filter_account_parties). External parties are the counterparties on the other side of an agreement (look them up with search-external-parties and filter with filter_external_parties). When it is not clear which kind a named entity is, or when one lookup returns nothing, check the other kind before concluding that no matching party or documents exist. # Active vs. archived documents Only active — i.e. not archived — documents are returned by default, so a default call silently leaves archived documents out of the answer. Archiving is not deletion: an archived document still exists, and for questions about past, completed or superseded contracts it may be the document being asked about. - Set filter_archived_state=all whenever the answer is meant to cover a complete set or a count — "all our NDAs", "how many contracts do we have with Acme", "which suppliers have we signed with", "what is our total contract value". A default call answers such a question with a number that is too low, and nothing in the response reveals that. - Set filter_archived_state=archived only when the user asks specifically about archived documents. - If a call returns no results, retry with filter_archived_state=all before concluding that no matching documents exist — alongside the other checks above, i.e. whether a term you passed to filter_query is really a tag, document type, metadata field or party, and whether a named entity is the other kind of party. When an answer draws on results that include archived documents, say which ones are archived. Request include=["timestamps"] to see this: archived_at is set on archived documents and null on active ones.
    ConnectorOAuth