WeiWanMcpServer について
WeiWanMcpServerは、HyperChatと組み合わせてチャットからツールを利用する、カスタムPython製MCPサーバープロジェクトです。ウェブ情報の検索や、Markdownノートの保存・書き換えに対応します。
主な機能
- 01指定サイトの情報検索
- 02リンクと概要の返却
- 03ウェブページをMarkdownノートとして保存
- 04ノートの書き換えや整理
- 05Obsidianベースのノート閲覧・管理
活用シーン
- 01指定したウェブサイトから情報を収集
- 02検索結果をローカルのMarkdownリポジトリに保存
- 03ダウンロードしたノートを書き換え、Obsidianで管理
MCP 対応
カスタムMCPサーバーは、情報検索、ウェブページのノートへの保存、ノートの書き換えなどのツールに加え、現在の日付や時刻を取得する補助ツールを提供します。HyperChatがツールを呼び出すチャット画面を担います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Show Time:AI Hackathon Project - HyperChat + Custom MCP Server
プロジェクトの背景
今回のAI Hackathonで、HyperChat(オープンソースのチャットクライアント)とカスタムMCPサーバーを基盤としたプログラムを実装しました。このプログラムでは、チャットでのやり取りを通じてMCPツールを呼び出し、次の主要機能を実現します。
- ウェブ情報の検索:指定したサイト(知乎など)でキーワードに関連する情報を検索し、リンクと要約を返します。
- ノートのダウンロード:検索したリンクの内容をMarkdownノートとしてダウンロードし、ローカルのノートリポジトリに保存します。
- ノートの管理:Obsidianのオープンソース実装を基に、ノートの閲覧、要約、削除などの操作を行います。
- ノートの書き直し:ダウンロードしたノートの内容を書き直したり、整理したりします。
技術的な実装
1. 主要コンポーネント
- HyperChat:ユーザーとやり取りするフロントエンドとして機能し、チャット形式でのMCPツール呼び出しに対応します。
- カスタムMCPサーバー:Pythonで実装され、次のツールを提供します。
search_news:ウェブ情報を検索します。download_note:ウェブページの内容をMarkdownノートとしてダウンロードします。overwrite_note:ノートの内容を書き直したり、整理したりします。- その他の補助ツール(現在の時刻や日付の取得など)。
2. コードの見どころ
MCPサーバーの主要コード
from mcp.server.fastmcp import FastMCP
from datetime import datetime
import os
import requests
import re
mcp = FastMCP("WeiWanMcp", instructions="""
限制:
1.调用search_news查询咨询后,不要对内容进行总结,直接进行输出.
""")
nodePath = os.getenv("NOTES_PATH", "E:\MyDocuments\MyNotes\Clipper")
@mcp.tool()
def search_news(query: str, website: str):
"""检索网络资讯"""
url = 'https://s.jina.ai/?q=' + query + '&num=20'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Respond-With': 'no-content',
}
if website:
if validate_domain(website):
headers['X-Site'] = website
response = requests.get(url, headers=headers)
return response.text
@mcp.tool()
def download_note(webLink: str, nodeTitle: str):
"""下载网页内容为笔记"""
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get("https://r.jina.ai/" + webLink, headers=headers)
with open(nodePath + "\\" + nodeTitle + ".md", "w", encoding='utf-8') as file:
file.write(response.text)
return "笔记已保存至: " + nodePath + "\\" + nodeTitle + ".md"
@mcp.tool()
def overwrite_note(content: str, nodeTitle: str):
"""复写笔记内容"""
with open(nodePath + "\\" + nodeTitle + ".md", "w", encoding='utf-8') as file:
file.write(content)
return "笔记已复写: " + nodePath + "\\" + nodeTitle + ".md"
3. 機能デモ
シナリオ1:情報の検索
- ユーザー入力:
在zhihu.com站点帮我检索MCP相关的资料 - MCPの応答:
search_newsツールを呼び出し、知乎で「MCP」に関連するリンクと要約を返します。- 出力例:
1. [MCP技术详解](https://zhihu.com/123) - 摘要内容... 2. [MCP开源项目](https://zhihu.com/456) - 摘要内容...
シナリオ2:ノートのダウンロード
- ユーザー入力:
下载第一个链接的笔记,保存为“MCP技术详解” - MCPの応答:
download_noteツールを呼び出し、リンク先の内容をMarkdownファイルとしてダウンロードします。- 出力:
笔记已保存至: E:\MyDocuments\MyNotes\Clipper\MCP技术详解.md
シナリオ3:ノートの書き直し
- ユーザー入力:
复写“MCP技术详解”笔记,内容为整理后的Markdown文本 - MCPの応答:
overwrite_noteツールを呼び出し、元のノートの内容を上書きします。- 出力:
笔记已复写: E:\MyDocuments\MyNotes\Clipper\MCP技术详解.md
4. Obsidianとの連携
- オープンソース実装の
obsidian_mcpを通じて、ノートリポジトリに対する次の操作に対応します。- ノートの内容を閲覧する。
- ノートを削除または名前変更する。
- ノートの内容に基づいて複雑な検索を行う。
プロジェクトの特長
- シームレスな連携:HyperChatによる自然言語でのやり取りを実現し、ユーザーの学習コストを削減します。
- 効率的な検索:指定したサイトの検索に対応し、目的の情報をすばやく取得できます。
- ローカルでの管理:ウェブ上のコンテンツをMarkdownノートとして保存できるため、後から整理して再利用できます。
- 柔軟性:ノートの書き直しとObsidianとの連携に対応し、個々のニーズを満たします。
今後の展望
- ツール群の拡張:翻訳や要約の生成など、MCPツールをさらに追加します。
- 複数プラットフォームへの対応:NotionやLogseqなど、より多くのノートアプリに対応します。
- パフォーマンスの最適化:検索とダウンロードの速度を向上させます。
機能のスクリーンショット
結び
今回のプロジェクトでは、HyperChatとカスタムMCPサーバーを組み合わせ、情報検索からノート管理までの一連のプロセスを自動化しました。今後も機能をさらに最適化し、より強力なナレッジ管理ツールをユーザーに提供していきます!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
