MCP Server + Document Memory System
Enables AI systems to remember interactions, understand document context through semantic search, and intelligently route requests with persistent memory and quality-scored content synthesis.
README
🧠 MCP Server + Document Memory System
Transform your AI from stateless to intelligent with persistent memory, semantic search, and advanced task capabilities.
🎯 Mission
Build a production-ready MCP Server that enables an AI system to:
- ✅ Remember all user interactions and documents
- ✅ Understand document context and meaning
- ✅ Route requests intelligently (memory-first strategy)
- ✅ Synthesize content from multiple sources
- ✅ Edit documents based on user feedback
- ✅ Create new documents from requirements
- ✅ Execute complex multi-step tasks
- ✅ Learn from every interaction
📊 Project Status
Phase 1: MCP Foundation ✅ COMPLETE
- Base MCP Server framework
- Quality scoring system (7 factors)
- Content router (5 strategies)
- Web search integration
- 33 unit tests (all passing)
- Comprehensive documentation
Phase 2-5: In Progress (Starting soon)
- Document memory & vector DB
- Semantic search
- Document editing/creation
- Advanced task execution
- Testing & deployment
🚀 Quick Start (5 minutes)
1. Clone & Install
cd "c:\Users\DELL CORE i5\New folder\mcp"
pip install -r requirements.txt
2. Configure
copy .env.example .env
# Add your API keys to .env
3. Run
python main.py
4. Test
curl http://localhost:8000/health
📚 Documentation
| Document | Purpose |
|---|---|
| QUICKSTART.md | 5-minute setup & common tasks |
| PHASE1_DOCUMENTATION.md | Complete Phase 1 details |
| ARCHITECTURE_GUIDE.md | How everything works |
📁 Key Components
Core Framework
- MCP Server (
src/mcp_server/base_server.py): Protocol handler, tool management, resource lifecycle - Quality Scorer (
src/mcp_server/quality_scorer.py): 7-factor content evaluation - Content Router (
src/content_router/router.py): Intelligent source selection - Web Search Tool (
src/web_search/web_search_tool.py): Google Gemini integration
Infrastructure
- Configuration (
config/settings.py): Environment-based config - Logging (
config/logging_config.py): Structured logging - Protocols (
src/mcp_protocol.py): Request/response schemas - Utilities (
src/utils.py): Shared types & helpers
Testing (33 tests)
tests/test_mcp_server.py- Server functionalitytests/test_quality_scorer.py- Scoring systemtests/test_content_router.py- Routing logictests/test_web_search.py- Web search tool\
🎯 Key Features
✅ Phase 1: MCP Foundation
Base MCP Server
- Async request/response handling
- Tool registration and discovery
- Middleware support
- Custom error handling
- Resource management lifecycle
Quality Scoring (7 Factors)
- Source reliability (25%)
- Content freshness (15%)
- Relevance (25%)
- Completeness (15%)
- Accuracy (15%)
- Citation count (3%)
- User feedback (2%)
Content Router (5 Strategies)
- MEMORY_FIRST: Check cache first (default)
- EXTERNAL_FIRST: Get latest info
- BALANCED: Comprehensive coverage
- MEMORY_ONLY: Offline mode
- EXTERNAL_ONLY: Fresh data only
Web Search Integration
- Google Gemini API
- Async execution
- Result ranking
- Mock fallback for testing
⏳ Phase 2-5: Advanced Features
Phase 2: Document Memory
- Vector database (ChromaDB + FAISS)
- Document processing (PDF, DOCX, PPTX, HTML, Images)
- Semantic search
- Usage-based optimization
Phase 3: Memory Integration
- Document Memory MCP Server
- Memory-first routing
- Content synthesis
- Performance analytics
Phase 4: Advanced Features
- Document Editor (edit/version control)
- Document Creator (generation from requirements)
- Task Executor (complex operations)
- Feedback integration
Phase 5: Production Ready
- Comprehensive testing (90%+ coverage)
- Performance optimization
- Security hardening
- Docker deployment
- Kubernetes configuration
💻 API Examples
Web Search
curl -X POST http://localhost:8000/request \
-H "Content-Type: application/json" \
-d '{
"request_id": "req_001",
"method": "execute",
"tool": "web_search",
"params": {"query": "AI trends", "limit": 5}
}'
List Tools
curl http://localhost:8000/tools
Server Health
curl http://localhost:8000/health
Statistics
curl http://localhost:8000/stats
🧪 Testing
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src --cov-report=html
# Run specific test file
pytest tests/test_quality_scorer.py -v
# Run single test
pytest tests/test_mcp_server.py::test_server_initialization -v
Current Status: 33/33 tests passing ✅
📋 Success Metrics
| Metric | Target | Status |
|---|---|---|
| Memory hit rate | >60% | Phase 2+ |
| Response time (memory) | <200ms | Phase 2+ |
| Response time (web) | <2s | ✅ |
| API cost reduction | >50% | Phase 3+ |
| Test coverage | >90% | Phase 5 |
| Document processing accuracy | >95% | Phase 2+ |
| Task completion success | >90% | Phase 4+ |
🔧 Configuration
Key settings in .env:
# Server
ENVIRONMENT=development
MCP_HOST=0.0.0.0
MCP_PORT=8000
# API Keys
GOOGLE_API_KEY=your_key_here
# Performance
VECTOR_SEARCH_K=10
MEMORY_HIT_THRESHOLD=0.7
CACHE_TTL=3600
# Logging
LOG_LEVEL=INFO
DEBUG=True
📚 Learning Path
- Read: QUICKSTART.md - 10 min
- Run:
python main.py- 5 min - Test:
pytest tests/ -v- 5 min - Explore: ARCHITECTURE_GUIDE.md - 20 min
- Code: Review
src/mcp_server/base_server.py- 30 min - Extend: Add custom tool - 30 min
🏗️ Architecture
┌─────────────────────────────────────────────────┐
│ REST API (FastAPI) │
│ GET / POST /health /stats /tools /request │
└────────────────┬────────────────────────────────┘
│
┌───────▼────────┐
│ MCP Protocol │
│ Processor │
└───────┬────────┘
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌──────────┐ ┌──────────┐
│ Web │ │ Quality │ │ Content │
│ Search │ │ Scorer │ │ Router │
│ Tool │ │ (7x) │ │(5 modes) │
└────────┘ └──────────┘ └──────────┘
│ │ │
└────────────┼────────────┘
│
┌────────────▼────────────┐
│ Storage Layer (Phase 2+)
│ - ChromaDB (vectors)
│ - PostgreSQL (metadata)
│ - Redis (cache)
└─────────────────────────┘
🚨 Known Limitations (Phase 1)
- No persistent storage (added in Phase 2)
- No document processing (added in Phase 2)
- No vector database (added in Phase 2)
- No semantic search (added in Phase 2)
- Mock search fallback (real API key needed)
- No authentication (added in Phase 5)
📝 Implementation Timeline
| Phase | Duration | Focus | Status |
|---|---|---|---|
| 1 | 1-2 weeks | Foundation | ✅ Complete |
| 2 | 2-3 weeks | Memory & Vectors | ⏳ Next |
| 3 | 1-2 weeks | Integration | 📋 Planned |
| 4 | 2-3 weeks | Advanced Features | 📋 Planned |
| 5 | 2-3 weeks | Testing & Deploy | 📋 Planned |
🎓 Code Examples
Creating a Custom Tool
from src.mcp_server import MCPTool, ToolType
class MyTool(MCPTool):
async def execute(self, params):
# Your code here
return {"result": "success"}
# Register and use
mcp_server.register_tool(MyTool(...))
Using Quality Scorer
from src.mcp_server import quality_scorer
score = quality_scorer.score_content(
content="...",
source_type="memory",
created_at=datetime.utcnow(),
relevance_score=0.8
)
# Returns: overall_score, quality_level, components
Content Routing
from src.content_router import content_router, RoutingStrategy
decision = await content_router.route_request(
query="AI trends",
strategy=RoutingStrategy.MEMORY_FIRST
)
# Returns: sources_to_query, expected_quality, reasoning
📞 Support
- Quick Questions: See QUICKSTART.md
- How It Works: See ARCHITECTURE_GUIDE.md
- Detailed Docs: See PHASE1_DOCUMENTATION.md
- Tests: Run
pytest tests/ -vfor examples - Logs: Check
logs/app.logfor troubleshooting
🎯 Next Steps
- Install and run the server
- Run test suite (
pytest tests/ -v) - Try API examples (see QUICKSTART.md)
- Read architecture guide
- Extend with custom tools
- Phase 2: Add document memory & vectors
📄 License
MIT - See LICENSE file (to be added)
👥 Contributing
- Fork the repository
- Create feature branch
- Add tests for new features
- Ensure all tests pass
- Submit pull request
Built with Python 3.11+, FastAPI, ChromaDB, Docling
Phase 1 Complete! Ready for Phase 2: Document Memory 🚀
mcp
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。