@kazuph/mcp-pocket
The @kazuph/mcp-pocket server connects to the Pocket API, allowing you to manage your saved articles in Claude Desktop. You can:
Fetch articles: Retrieve up to 20 unread articles via
pocket_get_articles, including their ID, title, URL, and excerptCustomize fetch count: Specify the number of articles to retrieve (1-20) using the
countparameterMark articles as read: Archive specific articles using their item ID via
pocket_mark_as_read
Allows Claude Desktop to fetch saved articles from Pocket API and mark specific articles as read (archived)
Click on "Install 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., "@@kazuph/mcp-pocketshow me my recent saved articles"
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.
MCP Pocket
This is a connector to allow Claude Desktop (or any MCP client) to fetch your saved articles from Pocket API.
Prerequisites
Node.js (install via
brew install node)Claude Desktop (install from https://claude.ai/desktop)
Pocket API credentials
Related MCP server: Notion MCP
Quick Start
Modify your Claude Desktop config located here:
~/Library/Application\ Support/Claude/claude_desktop_config.json
You can easily find this through the Claude Desktop menu:
Open Claude Desktop
Click Claude on the Mac menu bar
Click "Settings"
Click "Developer"
If you don't have this config, you can create an empty file at this location.
Add the following to the config file, replacing the credentials with your own:
{
"mcpServers": {
"pocket": {
"command": "npx",
"args": ["-y", "@kazuph/mcp-pocket"],
"env": {
"POCKET_CONSUMER_KEY": "your-pocket-consumer-key",
"POCKET_ACCESS_TOKEN": "your-pocket-access-token"
}
}
}
}Development Setup
Clone this repository and install dependencies:
git clone https://github.com/kazuph/mcp-pocket.git
cd mcp-pocket
npm installFor development, use this configuration instead:
{
"mcpServers": {
"pocket": {
"command": "npx",
"args": ["tsx", "/path/to/mcp-pocket/index.ts"],
"env": {
"POCKET_CONSUMER_KEY": "your-pocket-consumer-key",
"POCKET_ACCESS_TOKEN": "your-pocket-access-token"
}
}
}
}Development Commands
# Build TypeScript
npm run build
# Watch mode for development
npm run watch
# Publish to npm
npm login
npm publishAvailable Commands
The following MCP tools will be available in Claude Desktop:
pocket_get_articles: Fetch your saved articles from Pocket API. Returns title, URL, and excerpt for each article.pocket_mark_as_read: Mark a specific article as read (archived) in your Pocket account using its item ID.
Getting Pocket API Credentials
For detailed instructions on obtaining your Pocket API credentials, please refer to Issue #2.
Quick steps:
Create a new app at Pocket Developer Portal
Follow the authentication process to get your Consumer Key and Access Token
License
MIT
Available Tools
2 toolspocket_get_articlesA
Fetches the latest unread articles from Pocket API. Returns up to 20 articles by default. You can specify the number of articles to fetch (1-20) using the count parameter. Returns the article ID, title, URL, and excerpt for each article.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it's a read operation (implied by 'fetches'), returns up to 20 articles by default, and specifies the return format. However, it lacks details on authentication needs, rate limits, or error handling.
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 efficiently structured with three sentences: the first states the purpose, the second explains the parameter, and the third details the return format. Each sentence adds essential information without redundancy.
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 no annotations and no output schema, the description provides adequate coverage for a simple read tool. It explains the parameter and return format, but could be more complete by addressing authentication or error scenarios, which are common for API tools.
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 description adds significant meaning beyond the input schema, which has 0% description coverage. It explains the 'count' parameter's purpose (number of articles to fetch), range (1-20), and default value (20), compensating well for the schema's lack of documentation.
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 ('fetches') and resource ('latest unread articles from Pocket API'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from the sibling tool 'pocket_mark_as_read' beyond the different action verbs.
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 context by specifying it fetches 'latest unread articles,' suggesting this is for retrieving new content rather than managing read status. However, it doesn't provide explicit guidance on when to use this versus the sibling tool or any alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pocket_mark_as_readA
Marks a specific Pocket article as read (archived) using its item ID.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it indicates this is a mutation operation ('marks as read'), it doesn't specify whether this requires authentication, what happens to the article after archival, if the action is reversible, or any rate limits. The description provides minimal behavioral context beyond the basic action.
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, efficient sentence that communicates the core purpose without any unnecessary words. It's appropriately sized for a single-parameter tool and front-loads the essential information.
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 mutation tool with no annotations and no output schema, the description provides basic purpose but lacks important context about authentication requirements, error conditions, return values, or what 'archived' means operationally. It's minimally adequate but has clear gaps for a tool that modifies data.
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?
With 0% schema description coverage and only one parameter, the description adds significant value by explaining that 'itemId' refers to a 'Pocket article' identifier. This clarifies what the parameter represents beyond just being a string, though it doesn't provide format details or examples.
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 specific action ('marks as read'), the resource ('Pocket article'), and the mechanism ('using its item ID'). It distinguishes this tool from its sibling 'pocket_get_articles' by specifying it performs an archival action rather than retrieval.
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 context by mentioning 'item ID', suggesting this tool should be used when you have a specific article ID from Pocket. However, it doesn't explicitly state when to use this vs. alternatives or provide any exclusion criteria.
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. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
pocket_get_articles - First observed
pocket_mark_as_read
TDQS
The two tools have clearly distinct purposes: one fetches unread articles, while the other marks articles as read. There is no overlap in functionality, making it easy for an agent to select the correct tool based on the desired action.
Both tools follow a consistent 'pocket_verb_noun' pattern, using snake_case and starting with the server domain prefix. This predictability aids in tool identification and usage.
With only two tools, the server feels thin for a Pocket API integration. While it covers fetching and marking articles, it lacks operations like adding articles, managing tags, or retrieving read articles, which are core to the Pocket domain.
The toolset is severely incomplete for a Pocket API server. It misses essential operations such as adding articles to Pocket, retrieving read articles, managing tags, and deleting articles, leaving significant gaps that will hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol (MCP) server for web research. Bring real-time info into Claude and easily research any topic.31,567300MIT
- AlicenseNot gradedqualityDmaintenanceA simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list through Claude.209MIT
- AlicenseCqualityCmaintenanceModel Context Protocol Server for aggregating RSS feeds in Claude Desktop127Mozilla Public 2.0
- AlicenseAqualityCmaintenanceA Model Context Protocol server that connects MCP-compatible clients like Claude and VS Code to your Readwise Reader library, allowing them to list, retrieve, and update documents in your personal knowledge repository.711MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kazuph/mcp-pocket'
If you have feedback or need assistance with the MCP directory API, please join our Discord server