Token导航 LogoToken导航TokenDH.com
Analysis Alpaca Researcher logo
搜索检索stdio官方级别未说明来源级核验

Analysis Alpaca Researcher

MCP Server

一个基于MCP协议的生产级AI研究分析服务器,集成了网络和学术搜索功能,支持交互式研究和AI驱动的报告生成。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
报告生成PythonClaude搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

DeepKariaX

提供方

DeepKariaX

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

羊驼分析🦙

![License: MIT](https://opensource.org/licenses/MIT) ![MCP Compatible](https://github.com/modelcontextprotocol) ![PRs Welcome](https://github.com/DeepKariaX/Analysis-Alpaca-Researcher/pulls) ](https://github.com/DeepKariaX/Analysis-Alpaca-Researcher/issues) ](https://github.com/DeepKariaX/Analysis-Alpaca-Researcher/stargazers) ](https://github.com/DeepKariaX/Analysis-Alpaca-Researcher/network)

一个生产就绪的MCP(模型上下文协议)服务器,为Claude和其他兼容MCP的AI助手提供全面的研究和分析能力。该服务器将网络和学术搜索功能与可选的网络界面集成在一起,用于交互式研究和人工智能驱动的报告生成。

🚀 快速开始

# 1. Clone and navigate to the project
git clone https://github.com/DeepKariaX/Analysis-Alpaca-Researcher.git
cd Analysis-Alpaca-Researcher

# 2. Install dependencies (use virtual environment recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e .

# 3. Start the MCP server
python http_server.py

# Server runs on http://localhost:8001
# API documentation: http://localhost:8001/docs

📋 目录

✨ 特性

核心研究能力

  • 多源搜索:结合DuckDuckGo网络搜索和语义学者学术研究
  • 内容提取:从网页中智能提取相关信息
  • 学术整合:直接访问学术文章和研究论文
  • 智能格式化:具有引文和结构化输出的格式正确的研究
  • 速率限制:内置重试逻辑和API限制的优雅处理

Web界面功能

  • 互动研究:用户友好的网络界面,用于进行研究
  • 作业管理:通过进度监控跟踪多个研究工作
  • AI驱动的报告:使用OpenAI、Anthropic或Groq生成全面的PDF报告
  • PDF导出:将研究结果下载为正确命名的PDF文件
  • 实时更新:使用类似WebSocket的轮询进行实时进度跟踪

生产特点

  • 全面的错误处理:服务不可用时性能下降
  • 广泛的日志记录:调试和监控的详细日志记录
  • 可配置设置:基于环境的配置管理
  • 自动依赖安装:自动安装缺失的依赖项
  • 模块化架构:易于扩展和定制

🏗 建筑

组件概述

analysis_alpaca/
├── src/analysis_alpaca/          # Core MCP server implementation
│   ├── core/                     # Server and research orchestration
│   ├── search/                   # Search engine implementations
│   ├── models/                   # Data models and schemas
│   ├── utils/                    # Utility functions and helpers
│   └── exceptions/               # Custom exception handling
├── web_ui/                       # Optional web interface
│   ├── frontend/                 # React.js frontend application
│   └── backend/                  # FastAPI backend for web UI
├── tests/                        # Test suite
├── http_server.py               # HTTP API wrapper for MCP server
└── requirements.txt             # Unified dependencies

核心组件

  1. MCP服务器 (src/analysis_alpaca/core/server.py)

- 基于FastMCP的服务器向Claude展示研究工具 - 主要工具: deep_research() 用于综合研究 - 结构化研究方法的内置提示模板

  1. 研究服务 (src/analysis_alpaca/core/research_service.py)

- 协调整个研究工作流程 - 协调网络和学术搜索 - 管理内容提取和结果格式化 - 处理并行执行和错误恢复

  1. 搜索实现

- WebSearcher:带有结果解析的DuckDuckGo网络搜索 - 学术搜索者:语义学者API与重试逻辑集成 - 内容提取器:网页内容提取和处理

  1. HTTP服务器 (http_server.py)

- 用于MCP功能的REST API包装器 - 允许直接通过HTTP访问研究功能 - 启用CORS以实现web界面集成

  1. web界面

- 前端:带有PDF生成功能的React.js应用程序 - 后端:用于作业管理和AI报告生成的FastAPI服务器

🔧 安装

先决条件

  • Python 3.8+ (推荐:Python 3.11+)
  • Node.js 16+ (仅当使用web界面时)
  • npm或纱线 (仅当使用web界面时)

基本安装

# Clone the repository
git clone https://github.com/DeepKariaX/Analysis-Alpaca-Researcher.git
cd Analysis-Alpaca-Researcher

# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package
pip install -e .

# Or install with all optional dependencies
pip install -e ".[dev,ai]"

Web界面设置

# Install frontend dependencies
cd web_ui/frontend
npm install

# Return to project root
cd ../..

依赖关系概述

核心依赖关系:

  • httpx>=0.25.0 -API请求的HTTP客户端
  • beautifulsoup4>=4.12.0 -用于内容提取的HTML解析
  • mcp>=0.1.0 -模型上下文协议服务器框架
  • fastapi>=0.104.0 -用于HTTP API的Web框架
  • uvicorn>=0.24.0 -FastAPI的ASGI服务器

可选AI依赖关系:

pip install -e ".[ai]"  # Installs OpenAI, Anthropic, and Groq clients

开发依赖性:

pip install -e ".[dev]"  # Installs testing and linting tools

⚙️ 配置

环境变量

创建一个 .env 项目根目录中的文件:

# Search Configuration
AA_MAX_RESULTS=5              # Maximum results per search
AA_DEFAULT_NUM_RESULTS=3      # Default number of results
AA_WEB_TIMEOUT=15.0          # Web search timeout (seconds)
AA_USER_AGENT="AnalysisAlpaca 1.0"

# Content Configuration
AA_MAX_CONTENT_SIZE=10000    # Maximum response size
AA_MAX_EXTRACTION_SIZE=150000 # Maximum content to extract

# Server Configuration
AA_LOG_LEVEL=INFO            # Logging level (DEBUG, INFO, WARNING, ERROR)
AA_LOG_FILE="logs/research.log"  # Optional log file path
AA_AUTO_INSTALL_DEPS=true    # Auto-install missing dependencies

# AI Provider API Keys (Optional - for web interface)
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
GROQ_API_KEY=your_groq_key_here

# Web UI Configuration
MCP_SERVER_URL=http://localhost:8001  # URL of the MCP HTTP server

配置文件

该系统使用分层配置方法:

  1. 中的默认值 config.py
  2. 环境变量(覆盖默认值)
  3. 可选的 .env 文件(覆盖环境)

🚀 用法

MCP服务器(用于克劳德桌面)

添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "analysis-alpaca": {
      "command": "/path/to/python",
      "args": ["/path/to/analysis_alpaca/http_server.py"],
      "env": {
        "AA_MAX_RESULTS": "5",
        "AA_LOG_LEVEL": "INFO"
      }
    }
  }
}

独立HTTP服务器

# Start the HTTP API server
python http_server.py

# Server runs on http://localhost:8001
# API documentation available at http://localhost:8001/docs

Web界面(可选)

网络界面提供了一种用户友好的方式,可以通过浏览器与AnalysisAlpaca进行交互。

要求:

  • 前端使用Node.js 16+和npm
  • MCP HTTP服务器必须正在运行(见上文)

设置:

# Install frontend dependencies
cd web_ui/frontend
npm install
cd ../..

手动启动(需要2个终端):

终端1-后端API服务器:

cd web_ui/backend
python main.py

# Backend runs on http://localhost:8000
# API documentation: http://localhost:8000/docs

终端2-前端开发服务器:

cd web_ui/frontend
npm start

# Frontend runs on http://localhost:3000
# Access the web interface at http://localhost:3000

完成设置(共3台服务器):

  1. MCP服务器 (1号航站楼): python http_server.py → http://localhost:8001
  2. 后端API (2号航站楼): cd web_ui/backend && python main.py → http://localhost:8000
  3. 前端用户界面 (3号航站楼): cd web_ui/frontend && npm start → http://localhost:3000

研究工具使用

主要 deep_research 工具接受以下参数:

  • 怎么翻译 (必填):研究问题或主题
  • 来源 (可选):“网络”、“学术”或“两者皆有”(默认值:“两者都有”)
  • num_结果 (可选):要检查的源数量(默认值:2)

克劳德提示示例

Research the latest developments in quantum computing using both web and academic sources.

Can you do comprehensive research on climate change mitigation strategies? Focus on academic sources and examine 3 results.

I need detailed information about the impact of artificial intelligence on healthcare. Use the deep_research tool with web sources only.

API直接使用

# Research via HTTP API
curl -X POST "http://localhost:8001/deep_research" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "artificial intelligence in healthcare",
    "sources": "both",
    "num_results": 3
  }'

🌐 web界面

特性

  • 研究表格:提交研究查询的交互式表单
  • 进度跟踪:具有详细日志的实时进度更新
  • 作业管理:查看和管理多个研究作业
  • AI报告生成:使用各种LLM提供商生成综合报告
  • PDF导出:将报告下载为正确命名的PDF文件
  • 历史:浏览以前的研究工作和结果

支持的LLM提供商

  • OpenAI:GPT-4、GPT-3.5涡轮增压和其他型号
  • Anthropic:克劳德3(十四行诗、歌剧、俳句)
  • 希腊:使用各种开源模型进行快速推理

文件命名约定

下载的报告使用以下格式: {sanitized_title}_{source_type}.pdf

例子: artificial_intelligence_healthcare_web_academic.pdf

📚 api参考

MCP工具

deep_research

对一个主题进行全面的研究。

参数:

  • query (string,必填):研究问题或主题
  • sources (字符串,可选):源类型(“web”、“academic”、“both”)
  • num_results (整数,可选):要检查的源数量

退货: 有来源和内容的格式化研究成果

research_prompt

为多阶段研究生成结构化的研究提示。

参数:

  • topic (string,必填):研究主题

退货: 方法论综合研究提示

HTTP API终结点

POST /deep_research

通过HTTP执行研究查询。

{
  "query": "string",
  "sources": "both",
  "num_results": 2
}

GET /health

健康检查端点。

GET /docs

交互式API文档(Swagger UI)。

Web UI API端点

POST /research

开始一项新的研究工作。

GET /research/{job_id}

获取研究工作状态和结果。

GET /research/{job_id}/progress

获取研究工作的详细进展。

🛠 发展

项目结构

analysis_alpaca/
├── src/analysis_alpaca/
│   ├── __init__.py
│   ├── config.py              # Configuration management
│   ├── core/
│   │   ├── __init__.py
│   │   ├── server.py          # MCP server implementation
│   │   └── research_service.py # Research orchestration
│   ├── search/
│   │   ├── __init__.py
│   │   ├── base.py           # Base searcher class
│   │   ├── web_search.py     # DuckDuckGo implementation
│   │   ├── academic_search.py # Semantic Scholar implementation
│   │   └── content_extractor.py # Content extraction
│   ├── models/
│   │   ├── __init__.py
│   │   └── research.py       # Data models
│   ├── utils/
│   │   ├── __init__.py
│   │   ├── logging.py        # Logging utilities
│   │   └── text.py          # Text processing
│   └── exceptions/
│       ├── __init__.py
│       └── base.py          # Custom exceptions
├── web_ui/
│   ├── frontend/            # React.js application
│   └── backend/             # FastAPI backend
├── tests/                   # Test suite
├── http_server.py          # HTTP wrapper
├── requirements.txt        # Dependencies
├── pyproject.toml         # Package configuration
└── Makefile              # Development commands

开发设置

# Install with development dependencies
pip install -e ".[dev,ai]"

# Set up pre-commit hooks (optional)
pre-commit install

# Run tests
make test

# Code formatting
make format

# Linting
make lint

# Type checking
make type-check

添加新的搜索提供商

  1. 创建一个新的搜索器类,继承自 BaseSearcher
  2. 实施 search() 方法
  3. 将搜索者添加到 ResearchService
  4. 更新配置和文档

例子:

from .base import BaseSearcher

class NewSearcher(BaseSearcher):
    async def search(self, query: str, num_results: int) -> List[SearchResult]:
        # Implement search logic
        pass

🧪 测试

运行测试

# Run all tests
make test

# Run with coverage
make test-cov

# Run specific test file
pytest tests/test_models.py

# Run with verbose output
pytest -v

测试结构

  • tests/test_models.py -数据模型测试
  • tests/test_utils.py -实用功能测试
  • tests/conftest.py -测试配置和夹具

写作测试

测试使用pytest和pytest-asyncio进行异步测试:

import pytest
from analysis_alpaca.models.research import ResearchQuery

@pytest.mark.asyncio
async def test_research_query():
    query = ResearchQuery(query="test", sources="web", num_results=2)
    assert query.query == "test"

🚀 部署

生产部署

Docker部署

FROM python:3.11-slim

WORKDIR /app
COPY . .

RUN pip install -e .

EXPOSE 8001
CMD ["python", "http_server.py"]

环境配置

对于生产环境,设置以下环境变量:

AA_LOG_LEVEL=WARNING
AA_LOG_FILE=/var/log/analysis-alpaca.log
AA_AUTO_INSTALL_DEPS=false
AA_MAX_RESULTS=3
AA_WEB_TIMEOUT=20.0

反向代理设置(Nginx)

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

监控

该应用程序提供全面的日志记录。监控这些关键指标:

  • 研究请求率
  • 搜索成功/失败率
  • 内容提取成功率
  • 响应时间
  • 错误模式

缩放注意事项

  • 该应用程序是无状态的,可以水平扩展
  • 考虑实现Redis来缓存搜索结果
  • 在高流量场景中使用适当的消息队列进行后台处理

🔍 故障排除

常见问题

导入错误

# Ensure proper installation
pip install -e .

# Check Python path
python -c "import analysis_alpaca; print('OK')"

搜索超时

# Increase timeout values
export AA_WEB_TIMEOUT=30.0
export AA_ACADEMIC_TIMEOUT=30.0

学术搜索率限制

系统通过以下方式自动处理语义学者速率限制:

  • 指数退避重试逻辑
  • 温和降级(仅返回网络结果)
  • 请求间距

内容提取失败

  • 检查网络连接
  • 验证目标站点可用性
  • 某些网站可能会阻止自动请求

大响应截断

# Increase content size limits
export AA_MAX_CONTENT_SIZE=15000
export AA_MAX_EXTRACTION_SIZE=200000

调试模式

启用详细日志记录:

export AA_LOG_LEVEL=DEBUG
export AA_LOG_FILE="debug.log"
python http_server.py

查看日志:

tail -f debug.log

获取帮助

  1. 检查日志以了解详细的错误消息
  2. 根据示例验证您的配置
  3. 先用简单的查询进行测试
  4. 确保所有依赖项都已正确安装

🤝 贡献

开发工作流程

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 通过测试进行更改
  4. 运行质量检查: make check-all
  5. 提交拉取请求

代码的风格

该项目使用:

  • 黑色 用于代码格式化
  • isort 用于进口分拣
  • 薄片8 对于linting
  • mypy 用于类型检查

运行所有检查:

make check-all

提交指导方针

使用常规提交:

  • feat: 对于新功能
  • fix: 用于修复错误
  • docs: 用于文件编制
  • test: 用于测试
  • refactor: 用于重构

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🙏 致谢

  • 语义学者 用于学术搜索API
  • DuckDuckGo 用于网络搜索功能
  • 模型上下文协议 对于集成框架
  • FastMCP 用于服务器实现
  • React.js快速 API 对于web界面

📊 路线图

计划的功能

  • \[ \] 其他搜索提供商

- 谷歌学术集成 - Bing学术搜索 - ArXiv直接集成

  • \[ \] 增强的内容处理

- PDF内容提取 - 图像和图表分析 - 表数据提取

  • \[ \] 性能改进

- Redis缓存层 - 异步处理优化 - 响应流

  • \[ \] 高级功能

- 引文图分析 - 研究趋势检测 - 多语言支持

  • \[ \] 企业功能

- 用户认证 - 使用情况分析 - API速率限制 - 自定义搜索域

版本历史记录

  • v1.0.0 -具有核心研究功能的初始版本
  • v1.1.0版本 -添加了web界面和PDF导出
  • v1.2.0版本 -增强的错误处理和速率限制
  • 当前 -全面清理和记录

______________________________________________________________________

有关最新更新和详细的更改日志,请访问 .

目录标签

目录标签

报告生成PythonClaude搜索AI研究本地部署学术搜索网络爬取MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP