← Back to Skills

rss-feed-reader

v1.0.0 approved Web ⬇ 3 ↑ 3/7d updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o rss-feed-reader.skill   "https://aiskillstore.io/v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "fc8df408-e5bf-4bbd-825c-cce545ac7c3d",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

RSS/Atom feed reader with 4 actions: fetch, detect_encoding, filter, audit. Zero external dependencies, Korean EUC-KR auto-detection, client-side keyword filtering, 10+ feed hygiene rules.

# rss # atom # feed # web # korean # scraping # news

Basic Info

Owner 👤 aiskillstore-team Category Web Registered 2026-04-29 Last Updated 2026-04-29 Latest Version 1.0.0 Packaged At 2026-04-29 Vetting Status approved Downloads 3 Checksum (SHA256) bd021caa29ea14ca4dfc79c9c46772eb763719ecb86da1b262868df7e56cb844

⚡ AGENT INFO USK v3

Capabilities
rss_atom_fetch feed_encoding_detection keyword_filter feed_hygiene_audit
Permissions
✓ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=OpenClaw GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=ClaudeCode GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=Cursor GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=GeminiCLI GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=CodexCLI GET /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install rss-feed-reader
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install rss-feed-reader --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download
2
Place it in the Claude Code commands directory.
unzip rss-feed-reader.skill -d ~/.claude/commands/rss-feed-reader/
3
Use it as a slash command in Claude Code.
/rss-feed-reader
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip rss-feed-reader-agent-skill-*.skill -d ~/.claude/skills/rss-feed-reader/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip rss-feed-reader-cursor-*.skill -d ~/.cursor/skills/rss-feed-reader/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/rss-feed-reader/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip rss-feed-reader-geminicli-*.skill -d ~/.gemini/skills/rss-feed-reader/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/rss-feed-reader/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip rss-feed-reader-codexcli-*.skill -d ~/.codex/skills/rss-feed-reader/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/rss-feed-reader/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/download
2
Place it in your agent platform's skills directory.
cp rss-feed-reader.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result CAUTION

🚨 Security risks detected:

  • lib/encoding_detector.py: base64.b64decode(

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary RSS/Atom 피드를 조회, 인코딩 감지, 필터링, 위생 검사하는 스킬로, 선언된 권한을 준수하며 악의적인 코드가 발견되지 않았습니다.

Issues Found

  • 정적 분석에서 `lib/encoding_detector.py` 파일의 `base64.b64decode` 사용이 플래그되었으나, 이는 `detect_encoding` 액션의 의도된 기능(Base64 인코딩된 원시 바이트 샘플 처리)을 위한 것으로 악의적인 목적으로 사용되지 않습니다.
Reasoning

1. **권한 일치:** 스킬 메타데이터에 선언된 `network: true`, `filesystem: false`, `subprocess: false` 권한이 코드의 실제 동작과 일치합니다. `lib/fetcher.py`에서 `urllib.request`를 통한 네트워크 통신은 `network: true`에 부합하며, 파일 시스템 접근이나 외부 프로세스 실행 코드는 발견되지 않았습니다. 2. **악의적 코드 없음:** 정적 분석에서 `base64.b64decode` 사용이 플래그되었으나, 이는 `detect_encoding` 액션에서 사용자로부터 Base64 인코딩된 바이트 샘플을 받아 인코딩을 감지하는 기능의 일부입니다. 디코딩된 바이트는 실행되지 않고 인코딩 감지 로직에만 사용되므로 악의적인 목적으로 판단하기 어렵습니다. 그 외 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적의 코드는 발견되지 않았습니다. `lib/parser.py`에서 `<script>` 태그를 제거하는 로직이 포함되어 있어 기본적인 보안 고려사항이 적용된 것으로 보입니다. 3. **외부 통신:** `network: true`가 선언되었고 `network_egress_hosts`가 비어 있어 모든 호스트로의 네트워크 통신이 허용됩니다. 이는 RSS 피드 URL을 입력받아 조회하는 스킬의 본질적인 기능에 필요하며, 선언된 권한 범위 내에서 이루어집니다. 4. **사용자 데이터 수집/전송:** 스킬은 입력된 URL의 피드 콘텐츠를 가져와 처리하며, 사용자 데이터를 무단으로 수집하거나 외부로 전송하는 코드는 발견되지 않았습니다. 5. **코드 품질:** 코드는 모듈화가 잘 되어 있고, 주석 및 독스트링이 명확하며, 표준 라이브러리만을 사용하여 'zero external dependencies'라는 설명과 일치합니다. 오류 처리도 적절하게 구현되어 있습니다. 종합적으로 판단할 때, 이 스킬은 안전하며 스킬 스토어에 공개하기에 적합합니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-04-29 ⬇ 3

Examples 6

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

fetch_rss2_basic
# fetch# rss2# basic

RSS 2.0 피드 기본 조회 — 최신 5개 아이템 반환 / Fetch latest 5 items from an RSS 2.0 feed

📥 Input
{
  "action": "fetch",
  "filter_keywords": [],
  "include_content": false,
  "max_items": 5,
  "url": "https://feeds.feedburner.com/TechCrunch"
}
📤 Output
{
  "action": "fetch",
  "feed_meta": {
    "description": "Startup and Technology News",
    "language": "en",
    "link": "https://techcrunch.com",
    "title": "TechCrunch",
    "updated": "2024-01-15T12:00:00Z"
  },
  "format_detected": "rss2",
  "items": [
    {
      "author": "Jane Smith",
      "content": "",
      "link": "https://techcrunch.com/2024/01/15/ai-startup",
      "published": "2024-01-15T10:30:00Z",
      "summary": "A new AI startup has raised...",
      "title": "AI startup raises $50M"
    }
  ],
  "meta": {
    "encoding_used": "utf-8",
    "fetched_at": "2024-01-15T12:05:00Z",
    "url": "https://feeds.feedburner.com/TechCrunch"
  },
  "total_items": 5
}
fetch_atom_with_keywords
# fetch# atom# filter# korean

Atom 피드에서 키워드 필터링 — 'AI' 포함 항목만 / Fetch Atom feed filtered by keyword 'AI'

📥 Input
{
  "action": "fetch",
  "filter_keywords": [
    "AI",
    "\uba38\uc2e0\ub7ec\ub2dd"
  ],
  "include_content": true,
  "lang": "ko",
  "max_items": 20,
  "url": "https://blog.example.com/atom.xml"
}
📤 Output
{
  "action": "fetch",
  "feed_meta": {
    "description": "AI\uc640 \uac1c\ubc1c \uc774\uc57c\uae30",
    "language": "ko",
    "link": "https://blog.example.com",
    "title": "\uae30\uc220 \ube14\ub85c\uadf8",
    "updated": "2024-01-15T09:00:00Z"
  },
  "format_detected": "atom",
  "items": [
    {
      "author": "\ud64d\uae38\ub3d9",
      "content": "\u003cp\u003e2024\ub144 AI \ud2b8\ub80c\ub4dc\ub294...\u003c/p\u003e",
      "link": "https://blog.example.com/ai-trends-2024",
      "published": "2024-01-15T09:00:00Z",
      "summary": "\uc62c\ud574 \uc8fc\ubaa9\ud560 AI \ud2b8\ub80c\ub4dc\ub97c \uc815\ub9ac\ud588\uc2b5\ub2c8\ub2e4.",
      "title": "AI \ud2b8\ub80c\ub4dc 2024"
    }
  ],
  "meta": {
    "encoding_used": "utf-8",
    "fetched_at": "2024-01-15T12:05:00Z",
    "filter_applied": true,
    "filter_keywords": [
      "AI",
      "\uba38\uc2e0\ub7ec\ub2dd"
    ],
    "url": "https://blog.example.com/atom.xml"
  },
  "total_items": 3
}
detect_encoding_euckr
# detect_encoding# korean# euc-kr

한국어 EUC-KR 피드 인코딩 자동 감지 / Auto-detect EUC-KR encoding for Korean feed

📥 Input
{
  "action": "detect_encoding",
  "url": "https://www.example.co.kr/rss/news.do"
}
📤 Output
{
  "action": "detect_encoding",
  "confidence": "high",
  "encoding": "euc-kr",
  "meta": {
    "bom_detected": false,
    "byte_signature": "euc-kr",
    "sampled_bytes": 512,
    "xml_declaration_encoding": "EUC-KR"
  }
}
filter_by_date_range
# filter# date-range

날짜 범위로 아이템 필터링 — 2024-01-10 이후 항목만 / Filter items published after 2024-01-10

📥 Input
{
  "action": "filter",
  "filter_keywords": [],
  "items": [
    {
      "author": "Writer A",
      "content": "",
      "link": "https://example.com/old",
      "published": "2024-01-05T00:00:00Z",
      "summary": "Old content",
      "title": "Old Article"
    },
    {
      "author": "Writer B",
      "content": "",
      "link": "https://example.com/new",
      "published": "2024-01-12T00:00:00Z",
      "summary": "New content",
      "title": "New Article"
    }
  ],
  "since": "2024-01-10T00:00:00Z"
}
📤 Output
{
  "action": "filter",
  "items": [
    {
      "author": "Writer B",
      "content": "",
      "link": "https://example.com/new",
      "published": "2024-01-12T00:00:00Z",
      "summary": "New content",
      "title": "New Article"
    }
  ],
  "meta": {
    "filtered_count": 1,
    "keywords": [],
    "original_count": 2,
    "since": "2024-01-10T00:00:00Z",
    "until": null
  },
  "total_items": 1
}
audit_issues_found
# audit# security# quality

피드 위생 검사 — 보안·품질 이슈 감지 / Feed audit detecting security and quality issues

📥 Input
{
  "action": "audit",
  "url": "https://example.com/rss.xml"
}
📤 Output
{
  "action": "audit",
  "issues": [
    {
      "category": "SEC",
      "fix_hint": {
        "action": "Replace http:// with https:// in item links",
        "doc_ref": "https://www.rssboard.org/rss-specification",
        "example": "https://example.com/article",
        "summary": "\ub9c1\ud06c\ub97c HTTPS\ub85c \ubcc0\uacbd\ud558\uc138\uc694 / Change link to HTTPS"
      },
      "location": "feed/item[2]/link",
      "message": "\uc544\uc774\ud15c \ub9c1\ud06c\uac00 HTTP\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. HTTPS\ub97c \uad8c\uc7a5\ud569\ub2c8\ub2e4. / Item link uses HTTP, HTTPS recommended.",
      "rule": "SEC_NO_HTTPS",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "Add \u003cpubDate\u003eMon, 15 Jan 2024 10:00:00 +0900\u003c/pubDate\u003e",
        "doc_ref": "https://www.rssboard.org/rss-specification#ltpubdategtSubelementOfLtitemgt",
        "example": "\u003cpubDate\u003eMon, 15 Jan 2024 10:00:00 +0900\u003c/pubDate\u003e",
        "summary": "pubDate \ud544\ub4dc\ub97c \ucd94\uac00\ud558\uc138\uc694 / Add pubDate field"
      },
      "location": "feed/item[3]",
      "message": "pubDate \ud544\ub4dc\uac00 \ub204\ub77d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. / pubDate field is missing.",
      "rule": "QUAL_MISSING_PUBDATE",
      "severity": "error"
    }
  ],
  "meta": {
    "format_detected": "rss2",
    "issue_count": 2,
    "rules_applied": 11,
    "total_items_checked": 10,
    "url": "https://example.com/rss.xml"
  },
  "score": 62
}
audit_clean_feed
# audit# clean# perfect-score

위생 검사 통과 피드 — 점수 100 / Clean feed passing all audit rules with score 100

📥 Input
{
  "action": "audit",
  "url": "https://example.com/clean-feed.xml"
}
📤 Output
{
  "action": "audit",
  "issues": [],
  "meta": {
    "format_detected": "atom",
    "issue_count": 0,
    "rules_applied": 11,
    "total_items_checked": 5,
    "url": "https://example.com/clean-feed.xml"
  },
  "score": 100
}

All examples are also available via the agent API: /v1/agent/skills/fc8df408-e5bf-4bbd-825c-cce545ac7c3d/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review