TenderAI——用于投标和提案管理的MCP服务器
生产准备就绪 模型上下文协议 自动化政府/企业招标工作流程的服务器:RFP解析、技术提案撰写、财务提案组装、合作伙伴协调和合规跟踪。
特性
- 18个MCP工具 跨5个领域:文档智能、技术提案、财务提案、合作伙伴协调、过去提案索引和搜索
- 混合搜索:FTS5全文关键字搜索+sqlite-vec向量相似性搜索,采用往复式秩融合(RRF)
- 5资源URI方案 知识库访问:过去的提案、模板、供应商、公司简介、标准
- 4工作流提示 用于端到端编排:投标分析、执行摘要、合作伙伴检查、完整的提案工作流程
- AI驱动:使用Claude解析RFP,生成提案部分,并生成合规性说明
- Voyage AI嵌入 (可选):对过去的提案进行语义搜索——即使没有精确的关键字匹配,也能找到类似的项目
- 文档生成:专业的DOCX提案和XLSX BOM电子表格
- SQLite数据库:跟踪征求建议书、提案、供应商、物料清单项目、合作伙伴、可交付成果和索引的过去提案
- OAuth 2.0:内置OAuth支持claude.ai集成(动态客户端注册+PKCE,自动批准)
快速开始
地方发展(stdio)
# Clone and setup
cd tenders
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Configure
cp .env.example .env
# Edit .env — set ANTHROPIC_API_KEY
# Run
python -m app.server克劳德桌面/Claude代码配置
stdio(本地):
{
"mcpServers": {
"tenderai": {
"command": "python",
"args": ["-m", "app.server"],
"cwd": "/path/to/tenders",
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}HTTP(远程--克劳德代码/桌面):
{
"mcpServers": {
"tenderai": {
"type": "http",
"url": "https://tender.yfi.ae/mcp",
"headers": {
"Authorization": "Bearer "
}
}
}
}Claude.ai(OAuth 2.0):
集 OAUTH_ISSUER_URL=https://tender.yfi.ae 在 .env,然后添加 https://tender.yfi.ae/mcp 作为claude.ai上的集成,OAuth流程会自动完成。
生产部署
sudo ./setup.sh tender.yfi.ae
# Edit /opt/tenderai/.env — set ANTHROPIC_API_KEY
sudo systemctl start tenderai工具
文档智能
| 工具 | 说明 |
|---|---|
parse_tender_rfp | 解析PDF/DOCX RFP并提取结构化数据 |
generate_compliance_matrix | 为RFP生成合规矩阵DOCX |
check_submission_deadline | 检查截止日期并计算里程碑 |
validate_document_completeness | 验证提案是否包含所有必需的部分 |
技术建议书
| 工具 | 说明 |
|---|---|
write_technical_section | 使用AI编写单个提案部分 |
build_full_technical_proposal | 生成完整的技术方案DOCX |
generate_architecture_description | 生成正式的架构叙述 |
write_compliance_narrative | 编写需求的合规性响应 |
财务建议书
| 工具 | 说明 |
|---|---|
ingest_vendor_quote | 解析供应商报价并提取行项目 |
build_bom | 根据供应商报价构建物料清单 |
calculate_final_pricing | 用利润计算最终定价 |
generate_financial_proposal | 生成财务建议书DOCX+BOM XLSX |
合作伙伴协调
| 工具 | 说明 |
|---|---|
draft_partner_brief | 为合作伙伴起草技术要求简报 |
create_nda_checklist | 生成合作伙伴参与的NDA检查表 |
track_partner_deliverable | 跟踪合作伙伴的预期交付成果 |
过去的提案索引和搜索
| 工具 | 说明 |
|---|---|
index_past_proposal | Parse+AI将过去的提案文件夹汇总到可搜索的索引中 |
search_past_proposals | 搜索索引提案——关键字、语义或混合模式 |
list_indexed_proposals | 列出所有带有汇总统计数据的索引提案 |
资源
| URI模式 | 描述 |
|---|---|
proposals://past/{id} | 以往提案内容 |
templates://{type} | 提案模板 |
vendors://{name} | 供应商简介 |
company://profile | 公司简介 |
standards://{ref} | 标准参考 |
提示
| 提示 | 描述 |
|---|---|
analyze_new_tender | 全面招标和通过/不通过分析 |
write_executive_summary | 量身定制的执行摘要生成 |
partner_suitability_check | 评估合作伙伴是否适合投标 |
full_proposal_workflow | 端到端提案编排指南 |
知识库
填充这些目录以改进AI生成的内容:
data/
├── knowledge_base/
│ ├── company_profile/
│ │ └── profile.md # Company description, capabilities, differentiators
│ ├── templates/
│ │ ├── executive_summary.md
│ │ ├── technical_approach.md
│ │ └── ... # Section-specific templates
│ └── standards/
│ ├── iso27001.md
│ └── ... # Standards reference docs
├── past_proposals/
│ ├── tra_network_2024/
│ │ ├── Technical_Proposal.pdf # Your original submission files
│ │ ├── Cost_Sheet.xlsx # Financial data for pricing reference
│ │ └── _summary.md # Auto-generated by index_past_proposal
│ └── omantel_5g_2024/
│ └── ...
├── rfp_documents/ # Auto-populated by parse_tender_rfp
├── vendor_quotes/ # Vendor quote files
└── generated_proposals/ # Auto-populated output搜索架构
可以对过去的提案进行索引,以便快速检索:
Upload files → index_past_proposal → AI extracts metadata → stored in SQLite
├── FTS5 (keyword search, always on)
└── sqlite-vec (vector search, optional)- FTS5:带波特词干的BM25关键字排名——亚毫秒搜索
- 矢量:存储在sqlite-vec中的Voyage AI嵌入(512 dim)——语义相似性
- 混合:两者通过互易秩融合(RRF)结合以获得最佳结果
- 集
VOYAGE_API_KEY在.env启用矢量搜索(Voyage AI提供2亿个免费令牌)
备份
# Manual backup
./backup.sh /backups/tenderai 30
# Cron (daily at 2 AM)
0 2 * * * /opt/tenderai/backup.sh /backups/tenderai 30建筑
app/
├── server.py # Entry point — FastMCP init and wiring
├── config.py # Settings from .env
├── tools/
│ ├── document.py # 4 document intelligence tools
│ ├── technical.py # 4 technical proposal tools
│ ├── financial.py # 4 financial proposal tools
│ ├── partners.py # 3 partner coordination tools
│ └── indexing.py # 3 past proposal indexing & search tools
├── resources/
│ └── knowledge.py # 5 resource URI handlers
├── prompts/
│ └── workflows.py # 4 workflow prompts
├── db/
│ ├── schema.sql # SQLite schema (10 tables + FTS5 + triggers)
│ ├── database.py # Async database layer + sqlite-vec + OAuth CRUD
│ └── models.py # Pydantic models
├── services/
│ ├── llm.py # Anthropic SDK wrapper (15 prompt templates)
│ ├── parser.py # PDF/DOCX/XLSX parser
│ ├── embeddings.py # Voyage AI embedding service (optional)
│ └── docwriter.py # DOCX/XLSX generator
└── middleware/
├── auth.py # ASGI Bearer token auth (Claude Code/Desktop)
└── oauth.py # OAuth 2.0 provider (claude.ai)