Mentioned as a related project (Box MCP Server) for similar content management functionality
Provides an HTTP transport option for testing the MCP server, with API documentation available at /docs endpoint
Uses Pydantic v2 models for type safety in the server implementation
Built as a Python-based server for Alfresco Content Services, requiring Python 3.8+
Python Alfresco MCP Server 🚧 (Preview)
Python based Model Context Protocol server for Alfresco Content Services
Provides AI-native access to Alfresco content management operations through the Model Context Protocol.
🚀 Features
Comprehensive Content Management Tools
- Search API: Advanced text search with AFTS query language
- Document Lifecycle: Upload, download, checkin, checkout, cancel checkout
- Version Management: Create major/minor versions with comments
- Folder Operations: Create and delete folders with metadata
- Property Management: Get and set document/folder properties and names
- Node Operations: Delete documents and folders (trash or permanent)
Enterprise-Ready Architecture
- Multiple Transports: stdio (direct MCP) and FastAPI (HTTP/testing)
- Type Safety: Full Pydantic v2 models and async support
- Configuration: Environment variables and config file support
- Logging: Comprehensive logging with configurable levels
- Error Handling: Graceful error handling with detailed messages
AI Integration
- MCP Tools: 9 comprehensive tools for content operations
- MCP Resources: Repository metadata and status
- MCP Prompts: AI-friendly templates for common workflows
📋 Requirements
- Python 3.8+
- Alfresco Content Services (Community or Enterprise)
- python-alfresco-api >= 1.0.0
🛠️ Installation
1. Install Dependencies
2. Configure Alfresco Connection
Environment Variables (recommended):
Or Config File (config.yaml
):
🚀 Usage
stdio Transport (MCP Client)
FastAPI Transport (HTTP/Testing)
MCP Client Example
🛠️ Available Tools
Tool | Description | Parameters |
---|---|---|
search_content | Search documents and folders | query (str), max_results (int) |
download_document | Download document content | node_id (str) |
upload_document | Upload new document | filename (str), content_base64 (str), parent_id (str), description (str) |
checkout_document | Check out for editing | node_id (str) |
checkin_document | Check in after editing | node_id (str), comment (str), major_version (bool) |
create_folder | Create new folder | folder_name (str), parent_id (str), description (str) |
delete_node | Delete document/folder | node_id (str), permanent (bool) |
get_node_properties | Get node metadata | node_id (str) |
update_node_properties | Update node metadata | node_id (str), properties (dict), name (str) |
🔧 Configuration Options
Environment Variable | Default | Description |
---|---|---|
ALFRESCO_URL | http://localhost:8080 | Alfresco server URL |
ALFRESCO_USERNAME | admin | Username for authentication |
ALFRESCO_PASSWORD | admin | Password for authentication |
ALFRESCO_VERIFY_SSL | false | Verify SSL certificates |
ALFRESCO_TIMEOUT | 30 | Request timeout (seconds) |
FASTAPI_HOST | localhost | FastAPI host |
FASTAPI_PORT | 8000 | FastAPI port |
LOG_LEVEL | INFO | Logging level |
MAX_FILE_SIZE | 100000000 | Max upload size (bytes) |
🏗️ Architecture
🧪 Development
Setup Development Environment
Run Tests
Code Quality
📚 Examples
See the examples/
directory for:
basic_client.py
- Basic MCP client usagefastapi_client.py
- HTTP API testingdocument_workflow.py
- Complete document lifecyclesearch_examples.py
- Advanced search patterns
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
📄 License
This project is licensed under the Alfresco 2.0 License - see the LICENSE file for details.
🔗 Related Projects
- python-alfresco-api - The MCP server uses this
- Model Context Protocol Python SDK - Official MCP Python SDK
- Angel's Alfresco MCP PoC - Java MCP client, TypeScript MCP server for Alfresco
- Box MCP Server - Box Python based MCP server
🙋♂️ Support
- 📚 Documentation: TBD
- 🐛 Issues: GitHub Issues
Built using python-alfresco-api and the Model Context Protoco Python SDK
This server cannot be installed
Python-based server that provides AI-native access to Alfresco content management operations through the Model Context Protocol, enabling search, document lifecycle management, version control, and other content operations.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables seamless execution of commands, Python code, web content fetching, and reusable task management with secure credentials handling.Last updated -2PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants like Claude to perform Python development tasks through file operations, code analysis, project management, and safe code execution.Last updated -1Python
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Confluence content, supporting operations like retrieving, searching, creating, and updating pages and spaces.Last updated -93TypeScriptMIT License
- -securityFlicense-qualityA comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.Last updated -16TypeScript