Skip to main content
Glama
cowpin-ai

Cowpin Agent Memory MCP Server

Official
by cowpin-ai

Cowpin Agent Memory MCP Server

Smithery License: MIT

Official Model Context Protocol (MCP) server for Cowpin — the world's first Dual-Species Memory Vault for humans and autonomous AI agents.

Gives Claude Desktop, Cursor IDE, Windsurf, and autonomous agents persistent long-term memory, zero-JS web page extraction, full-text S3 archiving, and 1536-dimensional semantic vector recall (pgvector).


⚡ Quick Start

1. Claude Desktop Setup

Add this to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "cowpin": {
      "command": "npx",
      "args": ["-y", "@cowpin/mcp-server"],
      "env": {
        "COWPIN_AGENT_API_KEY": "cw_agent_your_api_key_here",
        "COWPIN_API_URL": "https://www.cowpin.com"
      }
    }
  }
}

2. Cursor IDE Setup

In Cursor settings or .cursor/mcp.json:

{
  "mcpServers": {
    "cowpin": {
      "command": "npx",
      "args": ["-y", "@cowpin/mcp-server"],
      "env": {
        "COWPIN_AGENT_API_KEY": "cw_agent_your_api_key_here"
      }
    }
  }
}

3. Smithery One-Click Install

Install automatically via Smithery CLI:

npx -y @smithery/cli install @cowpin/mcp-server --client claude

Related MCP server: CyberMem

🛠 Available Tools

Tool

Description

cowpin_save_memory

Fetches any URL, cleans DOM bloat, extracts readable text, generates vector embeddings, and permanently archives it in Cowpin. Also accepts raw markdown notes.

cowpin_search_memory

Performs hybrid Reciprocal Rank Fusion search across past research, articles, and notes using full-text keyword matching and pgvector semantic similarity.

cowpin_get_balance

Checks on-chain micro-credit balance and treasury deposit addresses (Base USDC, Solana, etc.).

cowpin_get_memory_page

Retrieves the full archived text and snapshot of a previously saved memory by ID or URL.


🔑 Authentication

  1. Humans: Generate an Agent API Key directly in your Cowpin account dashboard at cowpin.com/settings/tokens.

  2. Autonomous Agents: Sign an on-chain challenge using your Base, EVM, or Solana wallet address to receive an instant API token and micro-credit balance. See cowpin.com/docs/agent.


📄 License

MIT License. Created by Cowpin.

Available Tools

4 tools
cowpin_get_balanceA

Check the current micro-credit balance, available queries, and on-chain USDC deposit address for this agent wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the action ('check') which implies a read-only operation, but it does not explicitly confirm that it has no side effects, nor does it mention any authentication, rate limits, or network dependencies. For a balance query, the omission of explicit read-only confirmation is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and lists the three key pieces of information returned. Every word contributes meaning, with no fluff or repetition. It is optimally concise for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no nested objects), the description fully covers what an agent needs to know: what it does and what it returns. The siblings are unrelated, so there is no missing context about alternative choices. The description is complete for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty, so there is nothing for the description to elaborate on. The baseline for 0 parameters is 4, and the description correctly stays silent on parameters since none exist. No additional value is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and names the exact resource (agent wallet) and the data it returns (micro-credit balance, available queries, on-chain USDC deposit address). This clearly distinguishes it from the sibling memory tools, which focus on saving and retrieving memories, so an agent can easily tell this is the balance tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates this tool is for checking account-related information, and the sibling tools are all memory operations, making the appropriate context obvious. However, it does not explicitly state when to use this tool versus alternatives or mention any exclusions, so it lacks explicit usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cowpin_get_memory_pageB

Retrieve the full archived text and metadata of a specific memory by its ID or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoMemory/bookmark ID
urlNoTarget URL to look up

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavior itself. It covers what is returned (text and metadata) but says nothing about error responses for missing IDs/URLs, whether the operation is read-only, or how to handle an invalid lookup. The read-only nature is only implied by 'retrieve'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single focused sentence, front-loaded with the core action and result, with no wasted words. Perfectly sized for a simple lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate baseline for a 2-param read tool, but the lack of annotations and output schema means the description should clarify the id/url relationship and expected failure modes. The 0-required-params signal makes the missing guidance on providing neither or both more significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds the meaningful hint that parameters are alternative lookup keys ('by its ID or URL'), but does not explain precedence if both are supplied, mutual exclusivity, or behavior when neither is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Retrieve') and resource ('full archived text and metadata of a specific memory'), and clarifies the lookup keys (ID or URL). It does not explicitly contrast with siblings like cowpin_search_memory, but the 'full archived text' phrasing implies this is the complete fetch rather than a search result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool instead of cowpin_search_memory or cowpin_save_memory. The description neither names alternatives nor provides a decision rule such as 'use search to find IDs first', so an agent is left to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cowpin_save_memoryA

Save a webpage URL or raw text/markdown notes into the persistent Cowpin memory vault with automated text extraction, OpenGraph metadata parsing, and 1536-dimensional vector embeddings.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoWebpage URL to fetch, clean, and archive
tagsNoCategorical tags (e.g. ['research', 'ai', 'crypto', 'base'])
notesNoAgent thoughts, takeaways, or execution notes
titleNoTitle or short summary for the memory
contentNoRaw Markdown or plaintext notes to store directly
isPrivateNoWhether the memory is private to this wallet/account (default: true)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'automated text extraction', 'OpenGraph metadata parsing', and '1536-dimensional vector embeddings', which gives some insight into processing. However, it does not disclose side effects, error conditions, what happens when both url and content are supplied, or any authentication requirements. The description provides moderate transparency but leaves important behavioral aspects unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the primary purpose and then lists processing features. There is no redundancy or filler; every clause contributes to understanding the tool's role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no annotations and no output schema, the description provides a solid overview but omits details on parameter interactions (e.g., precedence of url vs content) and any return behavior. It does not mention whether tags or notes are required or how they are stored. The description is sufficient for a basic understanding but leaves gaps that could affect correct invocation in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by clarifying that url and content are alternative input modes ('or'), and it hints at processing applied to the url (text extraction, OpenGraph). This goes beyond the schema's simple field descriptions and helps the agent understand how parameters are used together.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Save a webpage URL or raw text/markdown notes into the persistent Cowpin memory vault' and lists specific processing capabilities (text extraction, OpenGraph metadata parsing, vector embeddings). It distinctly differentiates itself from sibling tools that search or retrieve memories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for storing new memories but does not explicitly contrast with search or retrieval tools. There is no guidance on when not to use it, such as when an existing memory should be updated or when to prefer cowpin_search_memory. The usage context is clear but lacks explicit exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cowpin_search_memoryB

Perform semantic vector and full-text keyword search over the agent's persistent memory vault using Reciprocal Rank Fusion. Returns relevant past research and snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tag filter
limitNoMaximum number of results to return (default: 5, max: 20)
queryYesNatural language search query or keywords

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action and result, but does not reveal whether the operation is read-only, if it has side effects, or any limitations. For a search tool, it is implied to be non-destructive, but the description does not explicitly confirm this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and returns expectation. No filler or redundant content. It is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only three documented parameters and no output schema, the description provides a vague sense of output ('relevant past research and snippets') but does not describe the structure of results (e.g., list of items with fields, ranking order). It is adequate but could be more specific about the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional detail about parameter usage beyond the general search method; it does not elaborate on tags, limit, or query interpretation. This meets the baseline but does not enhance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (semantic vector and full-text keyword search), the resource (persistent memory vault), and the method (Reciprocal Rank Fusion). It also specifies the return type (relevant past research and snippets), making it distinct from sibling tools like save or balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not mention other sibling tools or conditions for exclusion. The usage context is only implied by the purpose, not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedcowpin_get_balance
    • First observedcowpin_get_memory_page
    • First observedcowpin_save_memory
    • First observedcowpin_search_memory

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: saving, searching, checking balance, and retrieving full memory pages. Even though search returns snippets and get_memory_page returns full text, they serve different functions and are unlikely to be confused.

Naming Consistency5/5

All tools follow the consistent pattern cowpin_<verb>_<object> (save_memory, search_memory, get_balance, get_memory_page). The 'get' prefix is used consistently for retrieval operations, making the naming predictable and uniform.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose as a memory vault. The count is neither too thin nor excessive, and each tool contributes to core workflows (save, search, retrieve, and billing awareness).

Completeness4/5

The server covers save, search, and full-text retrieval, which are the primary operations for a memory vault. However, it lacks update and delete capabilities, which could be relevant if users need to correct or remove stored memories, though this may be intentional.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI tools like Claude and Cursor to share persistent memory across sessions.
    5
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides long-term memory for AI coding agents, enabling them to remember, search, and organize information across sessions and platforms like Claude Code, ChatGPT, and Cursor.
    13 npm
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables persistent, searchable memory for AI assistants across platforms like Claude, ChatGPT, and Gemini, using semantic search and automatic deduplication.
    4 npm
    MIT