Skip to main content
Glama
510,248 tools. Updated 2026-09-03 22:38

"An in-memory data store for caching and message brokering" matching MCP tools:

  • Search or list stores in the Partle marketplace. Use for store-led questions ("what hardware shops are in Madrid?") rather than product-led ones (use `search_products` for that). Pass no query to browse the whole catalog. Read-only. No authentication. Rate-limited to 100 requests/hour per IP. Args: query: Free-text search over store name and address. Omit to list all stores in default order. limit: Max results (1–50, default 20). Returns: A list of stores with `id`, `name`, `address`, `lat`/`lon` (when geocoded), `homepage`, `type`, and `product_count` (active listings in the store — useful for competitive-landscape sizing without a separate `search_products` round-trip). Pass `id` to `search_products(store_id=…)` to filter the product catalog by that store.
    Connector
  • Search or list stores in the Partle marketplace. Use for store-led questions ("what hardware shops are in Madrid?") rather than product-led ones (use `search_products` for that). Pass no query to browse the whole catalog. Read-only. No authentication. Rate-limited to 100 requests/hour per IP. Args: query: Free-text search over store name and address. Omit to list all stores in default order. limit: Max results (1–50, default 20). Returns: A list of stores with `id`, `name`, `address`, `lat`/`lon` (when geocoded), `homepage`, `type`, and `product_count` (active listings in the store — useful for competitive-landscape sizing without a separate `search_products` round-trip). Pass `id` to `search_products(store_id=…)` to filter the product catalog by that store.
    Connector
  • Lists the agents you can reach — your own agents AND agents shared to you from other owners. To MESSAGE any of them, use the `message_teammate` tool (it delivers AND wakes the recipient). Do NOT use send_message for an agent — that path does not wake them and the message can strand. Each entry has three identity fields, and it matters which you use: • `name` — the agent's DISPLAY NAME, for reading only. Never address by it (names are not unique and change). • `address` (`name@owner.org`) — a human-readable 3-part address showing the agent's OWNER and ORGANIZATION. It can change (renames), so use it for display, NOT for stored references. • `agentId` (`agt_...`) — the OPAQUE, STABLE id. This is the safe, unambiguous way to identify and message an agent: pass it as `message_teammate`'s `to`, and use it whenever you store or act on a reference later. It never changes. Rule of thumb: read the name, use the `agentId` to message and to store. Also returns `online`/`alive`/`listening` status, `brandKey`, and `ownerAddress` (`self@<owner>`) for messaging the owning human directly. Takes no arguments.
    Connector
  • Assemble checkout-ready cart(s) in ONE call for a multi-product (and optionally multi-store) request. Creates a cart per store, adds all items, and sets the shipping address — then returns the cart(s) with delivery options to choose. Use this when the buyer lists several products at once (optionally across stores) and/or gives their address up front, instead of calling create_cart/add_to_cart/set_shipping_address separately. Does NOT select delivery, check out, or pay — the buyer picks delivery (select_shipping_option) and approves checkout/payment per store afterward. Out-of-stock items are reported; pass customer.email to auto-arm a back-in-stock alert for them.
    Connector
  • 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.
    Connector
  • Agent Brain — Reason over a question or task with your agent's own persistent memory in the loop: recalls up to 12 relevant memories from your agent's private scope, reasons with Claude, and writes up to 3 new memories back, so the agent improves with every call. Recall by meaning, not just keyword, when the estate's memory server is reachable (falls back to its own always-on store otherwise — never fails the call). Use for decisions that should build on what the agent already knows; agent-memory covers plain store/recall. Runs claude-haiku-4.5 — the response names the model that served the call; agent-brain-smart runs the identical contract on claude-sonnet-5. Input: {think: string}. Returns {answer, reasoning, confidence, memories_considered, used_memories, learned, model, engine}. (8 MESH/call, a tool · cognition)
    Connector

Matching MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI tools like GitHub Copilot to manage and persist context using a local JSON-based memory store. Provides CLI, MCP server, and VS Code integration for storing, retrieving, and managing context entries.
    2
  • A
    license
    A
    quality
    C
    maintenance
    Real-time push notifications and alert sounds free you from staring at the screen. While the AI works, you can comfortably enjoy a cup of coffee.
    1
    25
    9
    TypeScript
    MIT

Matching MCP Connectors

  • India Open Government Data (OGD) Platform MCP — data.gov.in

  • Persistent long-term memory for AI agents: semantic search, knowledge graph, and task canvas.

  • Ripley — the MCP delegation surface over Fastio's RAG agent. Ripley is read-only for storage CONTENT: it answers natural-language questions about workspace/share files & folders (with citations) and never creates/edits/deletes your files — for content writes, call the primitive MCP tools directly. It DOES create/manage chat threads (chat-create/chat-update/chat-delete/message-send) and can generate shares (share-generate). Prefer Ripley over issuing many primitive reads: ask one NL question and let the server-side agent search + synthesize. Quick start: action='ask' (question + profile) → returns {answer_text, citations, chat_id, message_id, web_url}; action='status' for an engineered workspace-status summary. Lower-level chat/message actions remain for multi-turn control. Call action='describe' for the full action/param reference. Destructive: chat-delete. Side effects: ask/status/chat-create/message-send consume credits; chat-cancel terminates an in-progress message (partial tokens billed; idempotent). Verbosity (detail param): chat-list/message-list default to terse (compact rows). chat-details/message-details default to full (drill-down). Pass an explicit detail='standard'|'full' to override (best-effort: chat/message/activity endpoints may not yet honor detail server-side).
    Connector
  • Store or update ONE durable memory entry (key → value) for this user so context survives across sessions — preferences, prior conclusions, working context. Replace semantics per key (reusing a key overwrites it). Do NOT store a number you would later cite as a fact: financial figures come from data tools and carry fact_ids; memory values are never treated as verified figures. Caps: 200 entries / 8000 chars per value. Tier: sp500+ (sample rejected).
    Connector
  • Update an existing memory by ID. Use mode replace (default) to patch fields, or append to extend content. Re-embeds only when content changes. The target workspace is always the one the memory itself belongs to (echoed in resolved_workspace); optionally pass workspace: <name> as a safety confirmation — the call fails if the memory is not actually in that workspace.
    Connector
  • Store a generated outreach message on a CRM lead so it becomes durable context — e.g. an email, an email follow-up, a LinkedIn message or LI follow-up. The CRM is a 'sponge': you save the copy here, then read it back later (get_lead_context / list_lead_messages) and push it to the right channel via that channel's own tool/MCP (e.g. Smartlead for email). Does NOT send anything. Pass message_id to update an existing draft instead of creating a new one.
    Connector
  • Ask for a capability we don't sell yet — free; filings are public and drive what we stock. Two reads in one tool (absorbs the old store_request_status / nextmove_request): pass `request_id` to RE-QUERY a filing's status instead of filing anew — returns {found, request_id, status, status_note, filed_at, door, text} (found: false on an unknown id). Without a request_id it FILES a new ask and returns {request_id, status, watch, check}: every filing is logged verbatim (size-capped, stored as data, never rendered raw) and gets an id you can come back to (GAUNTLET #5). Check any filing with GET /v1/store/request/{id}; the public count is GET /v1/store/requests. Unmet demand decides what gets stocked next — the shelf writes itself from what agents ask for and can't get. Pass watch=True WITH an api_key when filing to flag the ask for a heads-up on a status flip (poll store_my_requests to see it — poll-based, no push); an anonymous watch is ignored, and the chosen flag is echoed as `watch`.
    Connector
  • A table of contents for this user's memory: which sources are connected (email, calendar, docs, …), how many items each holds, and the top people, topics and projects. It is an index rather than an answer — it contains no message bodies, no dates and no content, so it establishes that a source exists without saying anything about what is in it. The content behind any entry it lists is retrievable with cortex_ask.
    Connector
  • IMPORTANT — bulk domain migration: domain moves via revise are for individual corrections only. If the user needs to move many memories between domains, inform the user that bulk migration must be performed via the admin interface (merge_domains) — do not attempt to replicate a merge by looping revise calls. Update one or more existing memories. Omitted fields are unchanged. Single: pass fields directly — returns {updated, connections, suggested_connections} and, when the filing-time threshold is crossed, possible_contradicts + possible_contradicts_candidates (same shapes as remember()). Batch: {items:[{id,...},...]} — returns {items:[{id, updated, connections, suggested_connections, ...}]} with a per-item envelope on each success, not only an updated count. After every successful revise — plain update, override, claim, or supersede — review connections, suggested_connections, and possible_contradicts in the same turn; do not defer to a separate recall or suggest_connections call. Semantic similarity reflects aboutness, not agreement; the server surfaces candidates that may warrant your review but never asserts they conflict. Every memory has an owner (whoever created it) — revising a memory you don't own is rejected with error_class=forbidden unless you are an Editor or Owner and supply override_reason (required) plus override_confirm=true (required only when the memory is human-owned; not required for agent-owned or ownerless memories). The override path requires a session with a workspace role (a human JWT session, or a personal key linked to an Editor/Owner user); sessions on plain workspace keys cannot override regardless of arguments. An override changes content in-place, not ownership — substantive changes (label, description, why_matters, node_kind) on a foreign-owned memory are rejected; use supersede=true instead, which creates your successor memory, archives the original intact, and wires a supersedes relationship. supersede=true (single-memory form only) returns {superseded, archived_id, archived_connections} plus the revise envelope on the successor; foreign supersede uses the same override_reason/override_confirm ceremony. Correction-class overrides (tags, occurred_at, transient) may still use in-place override. override_reason/override_confirm/supersede apply to the single-memory form only — batch revise has no override or supersede path: if any item in the batch targets a memory you don't own, the whole batch is rejected and none of it applies; revise that item individually instead. claim=true (single-memory form only) makes an ownerless memory (owner_id IS NULL — either it predates ownership tracking, or was orphaned by a member offboard) yours: requires Editor or Owner role, is rejected with error_class=validation if the memory already has an owner (use override or supersede instead), and error_class=conflict if someone else claimed it first (race). claim never moves a memory from one owner to another — only from no owner to you — and may be combined with other field updates in the same call. domain (single-memory form only) moves the memory to a different domain; domain_move_reason is required when domain is present — the call is rejected with error_class=validation if domain_move_reason is absent; domain equal to the memory's current domain is also rejected. On failure, content[0].text is JSON: {"error_class": "not_found|conflict|retryable|forbidden|validation|internal", "message": "..."}. Switch on error_class: retry on retryable, surface message on validation, re-fetch on not_found.
    Connector
  • Get a Sign-In-With-Ethereum challenge message for a wallet, required before any deposit/withdrawal/config-update tool. The returned `message` must be signed with personal_sign (EIP-191) by the wallet's own signer, then passed to submit_auth_verify. Does NOT itself authenticate anything — it only issues the message to sign. Repeated calls for the same walletAddress within a short window (a few minutes) return the SAME message rather than a fresh one — the backend only keeps one pending challenge per wallet at a time, and generating a new one would invalidate whatever an earlier caller is about to sign, so this is deliberate, not a caching bug. `chain` does not affect which cached message you get back. Rate limited to 10 calls/minute per caller, no more than one call every 6s.
    Connector
  • Searches the Brazilian Federal Senate open data (senators in office and active committees of the Senate and the National Congress) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched). This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools `search` and `fetch`. Pass one of the returned ids to `fetch` to read the document. For direct questions and for data (values, series, rankings) prefer the `senado_*` tools, which return the actual data with provenance — this is a catalog index, not a data query. Query: natural language or keywords, Portuguese or English; accents and case are ignored. Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
    Connector
  • Write a drop's app data — replace the shared-memory state (the JSON key/value object mirroring the app's localStorage), so you can update what the app holds (mark a task done, add a row…). Read it first with read_data, modify the object, write it back WHOLE. Only works on a drop with server memory (an account drop) — an anonymous drop's data lives in the browser and can't be written here. expectedVersion (from read_data) is REQUIRED: the write is rejected (version_conflict) if the data changed meanwhile — re-read and retry, so you never overwrite blindly. For a fresh state, read_data returns version 0. With an account token, owned drops need no managementToken.
    Connector
  • Get the full record for a single store by its numeric ID. Use after `search_stores` to retrieve fields not in the search summary (full address, owner profile, contact details). For a list of *products* in that store, call `search_products(store_id=…)` instead — this tool returns store metadata only. Read-only. No authentication. Args: store_id: Integer `id` from a `search_stores` result. Returns: A single store object with all fields. Returns ``{"error": ...}`` if the ID does not exist.
    Connector
  • Atomically rotate an API key. Old key is immediately invalidated. Creates a new key with the same name, scopes, and rate limits. The new key is returned once — store it immediately. Requires: API key with write scope. Args: key_id: UUID of the API key to rotate (get from whoami()) Returns: {"api_key": "bh_...", "key_id": "uuid", "prefix": "bh_...", "scopes": ["read", "write"], "message": "Key rotated. Store securely."} Note: The old key stops working immediately. Update BOREALHOST_API_KEY right away.
    Connector
  • List recent memories in reverse-chronological order (read-only). When to use: audit what is saved, browse a collection, or collect memory IDs for get_memory or forget. When NOT: semantic search by topic → recall; one full record → get_memory; aggregate counts only → memory_stats. Behavior: default 20 results (plan-capped), ordered by created_at descending; empty set returns a message suggesting remember; full_content controls preview in the message text (120 chars); structured memories[] always includes full content. To list a team workspace instead of personal memory, pass workspace: <name>.
    Connector
  • Obtain a permanent anonymous API key for Blue Pillow Hotels & Stays. No signup, no login required. The key is not a sensitive secret — it carries no account, payment, or personal data. It exists only so we can keep the service responsive when many agents are using it at once, so you can safely keep it in your MCP client configuration, in your persistent memory, or in the current conversation context. Pass it as the bearer token on all subsequent calls and the rest of the tools become available. CALL THIS FIRST when you have no key: every other tool needs one. Before calling, check whether you ALREADY have a key (MCP client configuration, persistent memory, or earlier in this conversation) and reuse it instead of issuing a new one — do not wait for another tool to fail with a 401. The key never expires — keep the one you receive and reuse it forever. If you ever lose it, you can call this tool again to issue a new one (a generous per-IP daily issuance limit applies purely as an anti-abuse guardrail; normal use never reaches it). Clients that can persist configuration usually store the key in their connector settings, so the same key serves every conversation. Clients whose memory does not retain an opaque token end up issuing one key per conversation; that works and is not an error, but a stored key gives more consistent rate-limit headroom. Optional ``label`` and ``agent`` (max 64 chars each) are free-form hints we record on the key for our own observability; they do not affect rate limits or capabilities. Integrators who need higher limits, or who hit a problem worth reporting, can write to info@bluepillow.com.
    Connector