Cowpin Agent Memory MCP Server
OfficialProvides on-chain authentication and micro-credit balance management using Solana wallets, including deposit addresses and balance checks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cowpin Agent Memory MCP Serversave this article about MCP servers to my memory"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cowpin Agent Memory MCP Server
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.jsonWindows:
%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 claudeRelated MCP server: CyberMem
🛠 Available Tools
Tool | Description |
| Fetches any URL, cleans DOM bloat, extracts readable text, generates vector embeddings, and permanently archives it in Cowpin. Also accepts raw markdown notes. |
| Performs hybrid Reciprocal Rank Fusion search across past research, articles, and notes using full-text keyword matching and pgvector semantic similarity. |
| Checks on-chain micro-credit balance and treasury deposit addresses (Base USDC, Solana, etc.). |
| Retrieves the full archived text and snapshot of a previously saved memory by ID or URL. |
🔑 Authentication
Humans: Generate an Agent API Key directly in your Cowpin account dashboard at cowpin.com/settings/tokens.
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 toolscowpin_get_balanceA
Check the current micro-credit balance, available queries, and on-chain USDC deposit address for this agent wallet.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Memory/bookmark ID | |
| url | No | Target URL to look up |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Webpage URL to fetch, clean, and archive | |
| tags | No | Categorical tags (e.g. ['research', 'ai', 'crypto', 'base']) | |
| notes | No | Agent thoughts, takeaways, or execution notes | |
| title | No | Title or short summary for the memory | |
| content | No | Raw Markdown or plaintext notes to store directly | |
| isPrivate | No | Whether the memory is private to this wallet/account (default: true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tag filter | |
| limit | No | Maximum number of results to return (default: 5, max: 20) | |
| query | Yes | Natural language search query or keywords |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
cowpin_get_balance - First observed
cowpin_get_memory_page - First observed
cowpin_save_memory - First observed
cowpin_search_memory
TDQS
Scored across 4 tools
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.
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.
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).
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
Related MCP Connectors
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Portable AI memory you own. Keep memories and notes across Claude, ChatGPT, and other AI tools.
71Persistent memory for AI agents. Search, store, and recall across sessions.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables storing and searching personal notes, documents, and snippets using semantic search and RAG capabilities across Claude Desktop, VS Code, and Open WebUI.2-
- FlicenseNot gradedqualityCmaintenanceEnables AI tools like Claude and Cursor to share persistent memory across sessions.5-
- AlicenseNot gradedqualityDmaintenanceProvides 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 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables persistent, searchable memory for AI assistants across platforms like Claude, ChatGPT, and Gemini, using semantic search and automatic deduplication.4 npmMIT