ð§ Custom MCP Server for AI-Powered Sticky Notes
ããŒã«ã«ð§ Custom MCP Server for AI-Powered Sticky Notes ã«ã€ããŠ
NoteFlow ã¯ãFastMCP ã䜿ã£ãä»ç®ç®¡ççš MCP ãµãŒããŒã§ããAI ã¢ã·ã¹ã¿ã³ããžã®èªç¶èšèªã§ã®äŸé Œã§ä»ç®ãäœæã»æ€çŽ¢ã§ããããŒã«ã«ã® `.txt` ãã¡ã€ã«ã«ä¿åããŠäŒè©±ããŸããã§å©çšã§ããŸãã
äž»ãªæ©èœ
- 01èªç¶èšèªã§ä»ç®ãäœæ
- 02ä¿åæžã¿ã®ä»ç®ãååŸ
- 03ããŒã¯ãŒãã§ä»ç®ãæ€çŽ¢
- 04ããŒã«ã«ã® `.txt` ãã¡ã€ã«ã«ä¿å
- 05Claude Desktop ãšé£æº
掻çšã·ãŒã³
- 01ãªãã€ã³ããŒãã¿ã¹ã¯ã®ä¿å
- 02ãã¬ã€ã³ã¹ããŒãã³ã°ã®ã¢ã€ãã¢èšé²
- 03äŒè©±ããŸããã ä¿åæ å ±ã®æ€çŽ¢
MCP 察å¿
MCP ãéã㊠AI ã¯ã©ã€ã¢ã³ãã«ä»ç®ã®äœæã»ååŸã»æ€çŽ¢ããŒã«ãå ¬éããŸããREADME ã§ã¯ Claude Desktop ãšã®é£æºã説æãããŠããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ð§ NoteFlow
ã«ã¹ã¿ã MCP ãµãŒããŒãä»ãã AI 察å¿ã®ä»ç®
èªç¶èšèªã䜿ã£ãŠ AI ã¢ã·ã¹ã¿ã³ããä»ç®ãäœæãååŸã管çã§ããããã«ããã軜é㪠Model Context ProtocolïŒMCPïŒãµãŒããŒã§ãã æ¥ã ã®äŒè©±ããçç£æ§åäžããã¬ã€ã³ã¹ããŒãã³ã°ããªãã€ã³ããŒã«æŽ»çšã§ãããä¿åå¯èœãªã¡ã¢ã«å€ããŸãããã
ð NoteFlow ãšã¯ïŒ
NoteFlow ã¯ãAI ã¯ãŒã¯ãããŒã«ä¿åå¯èœãªä»ç®ãå°å ¥ããããã«èšèšãããã«ã¹ã¿ã MCPïŒModel Context ProtocolïŒãµãŒããŒã§ãã
å¥ã ã®ã¢ããªã§ã¡ã¢ãæäœæ¥ã§ç®¡çãã代ããã«ããŠãŒã¶ãŒã¯èªç¶èšèªã䜿ã£ãŠãAI ã¢ã·ã¹ã¿ã³ãã«ã¡ã¢ã®äœæãä¿åãååŸãäŸé Œããã ãã§æžã¿ãŸãã
Claude Desktop ãªã©ã® AI ã¯ã©ã€ã¢ã³ããšé£æºãããšãNoteFlow ã«ãã£ãŠã¢ã·ã¹ã¿ã³ãã¯æ¬¡ã®ããšãã§ããŸãã
- ãªãã€ã³ããŒãä¿åãã
- ã¢ã€ãã¢ãä¿åãã
- 以åã«ä¿åããã¡ã¢ãååŸãã
- äŒè©±ããŸããã§ã³ã³ããã¹ããä¿æãã
ãã¹ãŠã®ã¡ã¢ã¯ã·ã³ãã«ãª .txt ãã¡ã€ã«ã«ããŒã«ã«ä¿åããããããã·ã¹ãã ã¯è»œéã§éææ§ãé«ããå®å
šã«ã«ã¹ã¿ãã€ãºå¯èœã§ãã
âš ç¹é·
| ç¹é· | 説æ |
|---|---|
| ð§ ã«ã¹ã¿ã MCP ãµãŒã㌠| FastMCP ã䜿çšããŠãå®å šã«æ©èœãã MCP ãµãŒããŒãå®è£ ããŸã |
| ð èªç¶èšèªã«ããã¡ã¢ã®äœæ | AI ã¢ã·ã¹ã¿ã³ããã³ãã³ãããçŽæ¥ã¡ã¢ã远å ã§ããŸã |
| ð ã¡ã¢ã®ååŸ | ä¿åæžã¿ã®ã¡ã¢ãããã«ååŸã§ããŸã |
| ðŸ æ°žç¶ã¹ãã¬ãŒãž | ã¡ã¢ã¯ããŒã«ã«ã® .txt ãã¡ã€ã«ã«ä¿åãããŸã |
| â¡ é«é㪠Python ç°å¢ | ææ°ã® uv ããã±ãŒãžãããŒãžã£ãŒã䜿çšããŸã |
| ð Claude Desktop ãšã®é£æº | Claude å ã«ããŒã«ãèªåç»é²ããŸã |
| ð§© æ¡åŒµããããèšèš | ã¡ã¢ã®åé€ãã¿ã°ä»ããåé¡ãªã©ã®æ°ããããŒã«ãç°¡åã«è¿œå ã§ããŸã |
ðïž ã·ã¹ãã ã¢ãŒããã¯ãã£
ãªã¯ãšã¹ãã®æµã
graph TD
A[ð€ User Prompt] --> B[Claude Desktop AI]
B --> C[MCP Client]
C --> D[Custom MCP Server - FastMCP]
D --> E{Command Type}
E -->|Add Note| F[Write to notes.txt]
E -->|Retrieve Notes| G[Read notes.txt]
E -->|List Notes| H[Parse Stored Notes]
F --> I[Return Confirmation]
G --> I
H --> I
I --> B
MCP ã¯ãŒã¯ãããŒ
MCP ãµãŒããŒã¯ãAI ã¯ã©ã€ã¢ã³ããåŒã³åºããã«ã¹ã¿ã ããŒã«ãå ¬éããŸãã
1ïžâ£ ãŠãŒã¶ãŒã AI ã¢ã·ã¹ã¿ã³ãã«ã¡ã¢ã®ä¿åãŸãã¯ååŸãäŸé ŒããŸã
2ïžâ£ ã¢ã·ã¹ã¿ã³ãã MCP çµç±ã§ããŒã«ãªã¯ãšã¹ããéä¿¡ããŸã
3ïžâ£ FastMCP ãµãŒããŒããªã¯ãšã¹ããåŠçããŸã
4ïžâ£ ã¡ã¢ã notes.txt ã«æžã蟌ãŸããããããããååŸãããŸã
5ïžâ£ å¿çã AI ã¯ã©ã€ã¢ã³ãã«è¿ãããŸã
ãã®ã¢ãŒããã¯ãã£ã«ãããAI ã¢ã·ã¹ã¿ã³ãã¯ããŒã«ã«ããŒã«ãšå®å šãã€å¹ççã«é£æºã§ããŸãã
ð ïž æè¡ã¹ã¿ãã¯
ããã¯ãšã³ãã®äžæ ž
| ã³ã³ããŒãã³ã | æè¡ |
|---|---|
| ããã°ã©ãã³ã°èšèª | Python 3.12 |
| MCP ãµãŒããŒãã¬ãŒã ã¯ãŒã¯ | FastMCP |
| ããã±ãŒãžãããŒãžã£ãŒ | uv |
| ã¹ãã¬ãŒãž | ããŒã«ã«ã® .txt ãã¡ã€ã« |
| AI ã¯ã©ã€ã¢ã³ã飿º | Claude Desktop |
ð ãããžã§ã¯ãæ§æ
ai-sticky-notes-mcp/
â
âââ main.py # MCP server logic (tools, prompts, handlers)
âââ notes.txt # Persistent storage for sticky notes
âââ README.md # Project documentation
ð ã€ã³ã¹ããŒã«ãšã»ããã¢ãã
åææ¡ä»¶
- Python 3.12+
- Claude DesktopïŒä»»æã§ãããæšå¥šïŒ
1ïžâ£ uv ãã€ã³ã¹ããŒã«ãã
WindowsïŒPowerShellïŒ
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Mac / LinuxïŒcurlïŒ
curl -LsSf https://astral.sh/uv/install.sh | sh
ãŸã㯠wget ã䜿çš
wget -qO- https://astral.sh/uv/install.sh | sh
2ïžâ£ ãããžã§ã¯ããåæåãã
uv init .
3ïžâ£ MCP ã®äŸåé¢ä¿ã远å ãã
uv add "mcp[cli]"
ð MCP ãµãŒããŒãå®è¡ãã
ãã¹ãŠã®ãµãŒããŒããžãã¯ã main.py ã«èšè¿°ããŸãã
次ã«ãMCP ãµãŒããŒãã€ã³ã¹ããŒã«ããŸãã
uv run mcp install main.py
ããã«ãã MCP ãµãŒããŒãç»é²ãããAI ã¯ã©ã€ã¢ã³ããèªåçã«æ€åºã§ããããã«ãªããŸãã
ð Claude Desktop ãšã®çµ±å
Claude Desktop ãã€ã³ã¹ããŒã«ãããŠããå ŽåïŒ
1ïžâ£ 次ãå®è¡ããŸãïŒ
uv run mcp install main.py
2ïžâ£ Claude ã MCP ãµãŒããŒãèªåçã«æ€åºããŸãã
3ïžâ£ ããŒã«ã衚瀺ãããªãå Žåã¯ãClaude ãåèµ·åããŸãïŒ
- ã¿ã¹ã¯ ãããŒãžã£ãŒãéããŸã
- Claude Desktop ã®ããã»ã¹ãçµäºããŸã
- ã¢ããªãåèµ·åããŸã
ããã§ MCP ããŒã«ãå©çšã§ããããã«ãªããŸãã
ð MCP ããŒã«ã®äŸ
ãµãŒããŒã§ã¯ã次ã®ãããªããŒã«ãå ¬éã§ããŸãïŒ
| ããŒã« | 説æ |
|---|---|
add_note | æ°ããä»ç®ãä¿åãã |
get_notes | ãã¹ãŠã®ã¡ã¢ãååŸãã |
search_notes | ããŒã¯ãŒããå«ãã¡ã¢ãæ€çŽ¢ãã |
察話ã®äŸïŒ
User: Remember that I need to finish my ML assignment tonight.
Claude: Note saved successfully.
âïž èšå®
| èšå® | ãã¡ã€ã« | 説æ |
|---|---|---|
| ã¡ã¢ã®ä¿å | notes.txt | ã¡ã¢ãä¿åããããŒã«ã«ãã¡ã€ã« |
| MCP ããŒã« | main.py | ããŒã«ãšã³ãã³ããå®çŸ©ãã |
| ã¯ã©ã€ã¢ã³ãçµ±å | Claude Desktop | MCP ãµãŒããŒãèªåçã«ç»é²ãã |
ð æ¢ç¥ã®åé¡ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°
Claude ã« MCP ãµãŒããŒã衚瀺ãããªã
Claude ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãïŒ
- ã¿ã¹ã¯ ãããŒãžã£ãŒãéããŸã
- Claude ã®ããã»ã¹ãçµäºããŸã
- ã¢ããªãåèµ·åããŸã
ã¡ã¢ãä¿åãããªã
次ã®ç¹ã確èªããŠãã ããïŒ
- ãããžã§ã¯ããã£ã¬ã¯ããªã«
notes.txtãååšãã - MCP ãµãŒããŒã«ãã¡ã€ã«ãžã®æžãèŸŒã¿æš©éããã
ð® ä»åŸã®æ¹å
- ð ã¡ã¢ã®ã¿ã°ä»ããšåé¡
- ð§ åã蟌ã¿è¡šçŸã䜿çšããã»ãã³ãã£ãã¯æ€çŽ¢
- ðïž ã¡ã¢ã®åé€ãŸãã¯ç·šé
- âïž ã¯ã©ãŠãã¹ãã¬ãŒãžãšã®çµ±å
- ð ãã«ããšãŒãžã§ã³ã MCP ã¯ãŒã¯ãããŒ
倧åãªããšã AI ã¢ã·ã¹ã¿ã³ãã«èŠããŠããããŸãããã
NoteFlow â ã¢ã€ãã¢ãæ¶ããªãããã«ã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã