使用说明
MCP Web服务器
Dockered MCP服务器,通过SSE公开免费的web/API工具。
工具
search_web:DuckDuckGo/DDGS网络搜索,结果计数有限。weather_forecast:打开Meteo预报,了解地点和确切日期。wiki_summary:维基百科定义和稳定实体概述摘要。news_search:GDELT DOC 2.0近期全球新闻文章搜索。crawl_url:抓取一个已知的URL并返回可读的markdown/text。crawl_urls:抓取已知URL的有界列表。fetch_arxiv:通过精确的arXiv ID获取arXiv元数据/摘要。
论文发现是有意通过以下方式完成的 search_web例如,与 site:arxiv.org/abs diffusion language model那么 fetch_arxiv 使用所选ID调用。
对于常见的源代码特定问题,在常规搜索之前,请优先选择API工具:
- 天气:
weather_forecast - 定义和百科全书背景:
wiki_summary - 新闻和政治/时事发现:
news_search - ID发现后的纸张元数据:
fetch_arxiv
source_catalog.yaml 列出了这些免费的首选源以及本地代理/路由器的回退域。它是声明性的指导,而不是硬编码的意图识别。
Docker服务
创建本地配置:
cp -n env.example .env
运行MCP服务器:
docker compose up --build -d mcp-server
该服务仅在Compose网络上公开,不发布到主机。同一网络上的代理容器应使用:
http://mcp-server:8000/sse
要集成到更大的代理堆栈中,请复制 mcp-server 将服务添加到该Compose文件中,或将两个项目附加到共享的外部网络。
本地开发
pip install -r requirements.txt
playwright install chromium
python server.py
配置
环境变量在中定义 env.example:
API_USER_AGENTMAX_SEARCH_RESULTS,SEARCH_TIMEOUTCRAWLER_TIMEOUT,CRAWLER_MAX_BATCH_URLS,CRAWLER_MAX_CONCURRENCYCRAWLER_WORD_COUNT_THRESHOLD,CRAWLER_EXCLUDE_EXTERNAL_LINKS,CRAWLER_REMOVE_OVERLAY_ELEMENTS,CRAWLER_ALLOW_PRIVATE_HOSTSARXIV_FETCH_TIMEOUT,ARXIV_MIN_REQUEST_INTERVALWEATHER_TIMEOUT,WEATHER_MAX_FORECAST_DAYSWIKI_TIMEOUT,WIKI_DEFAULT_LANGUAGENEWS_TIMEOUT,NEWS_MAX_RESULTS,NEWS_DEFAULT_TIMESPAN
保持 CRAWLER_ALLOW_PRIVATE_HOSTS=false 用于生产。默认情况下,爬虫会阻止localhost、私有IP文字、Docker主机网关名称和单标签内部服务名称。
响应模型
响应是JSON序列化的Pydantic模型 models.py:
WebSearchResponseWeatherForecastResponseWikiSummaryResponseNewsSearchResponseCrawlResponseBatchCrawlResponseArxivFetchResponse
运行时强化
Docker服务以非根UID/GID运行 10001,与 read_only: true,放弃了Linux功能, no-new-privileges,有界CPU/内存/PID,以及用于Chromium/缓存需求的tmpfs支持的可写路径。