Spaces:
Sleeping
Sleeping
| # Setup Guide - OpenProblems Spatial Transcriptomics MCP Server | |
| This guide will help you set up and run the OpenProblems Spatial Transcriptomics MCP Server. | |
| ## Prerequisites | |
| ### System Requirements | |
| - **Python**: 3.8 or higher | |
| - **Operating System**: Linux, macOS, or Windows (with WSL2 recommended) | |
| - **Memory**: Minimum 4GB RAM (8GB+ recommended for processing large datasets) | |
| - **Storage**: 10GB+ free space for data and temporary files | |
| ### Required Tools | |
| The MCP server integrates with these bioinformatics tools: | |
| - **[Nextflow](https://www.nextflow.io/)**: Workflow orchestration | |
| - **[Viash](https://viash.io/)**: Component framework | |
| - **[Docker](https://www.docker.com/)**: Containerization | |
| - **Java**: 11 or higher (required for Nextflow) | |
| ## Installation | |
| ### Option 1: Local Installation | |
| 1. **Clone the repository**: | |
| ```bash | |
| git clone https://github.com/openproblems-bio/SpatialAI_MCP.git | |
| cd SpatialAI_MCP | |
| ``` | |
| 2. **Create a Python virtual environment**: | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. **Install the package**: | |
| ```bash | |
| pip install -e . | |
| ``` | |
| 4. **Install external tools**: | |
| **Nextflow**: | |
| ```bash | |
| curl -s https://get.nextflow.io | bash | |
| sudo mv nextflow /usr/local/bin/ | |
| ``` | |
| **Viash**: | |
| ```bash | |
| curl -fsSL get.viash.io | bash -s -- --bin /usr/local/bin | |
| ``` | |
| **Docker**: Follow the [official Docker installation guide](https://docs.docker.com/get-docker/) | |
| ### Option 2: Docker Installation | |
| 1. **Clone the repository**: | |
| ```bash | |
| git clone https://github.com/openproblems-bio/SpatialAI_MCP.git | |
| cd SpatialAI_MCP | |
| ``` | |
| 2. **Build the Docker image**: | |
| ```bash | |
| docker build -f docker/Dockerfile -t openproblems-spatial-mcp . | |
| ``` | |
| 3. **Run with Docker Compose**: | |
| ```bash | |
| cd docker | |
| docker-compose up -d | |
| ``` | |
| ### Option 3: Development Setup | |
| For contributors and developers: | |
| 1. **Clone and install in development mode**: | |
| ```bash | |
| git clone https://github.com/openproblems-bio/SpatialAI_MCP.git | |
| cd SpatialAI_MCP | |
| pip install -e ".[dev]" | |
| ``` | |
| 2. **Install pre-commit hooks**: | |
| ```bash | |
| pre-commit install | |
| ``` | |
| 3. **Run tests**: | |
| ```bash | |
| pytest tests/ | |
| ``` | |
| ## Configuration | |
| ### Basic Configuration | |
| The server uses `config/server_config.yaml` for configuration. Key settings: | |
| ```yaml | |
| server: | |
| name: "OpenProblems-SpatialAI-MCP" | |
| transport: | |
| primary: "stdio" | |
| http_port: 8000 | |
| paths: | |
| data_dir: "./data" | |
| work_dir: "./work" | |
| logs_dir: "./logs" | |
| tools: | |
| nextflow: | |
| default_profile: "docker" | |
| viash: | |
| default_engine: "docker" | |
| ``` | |
| ### Environment Variables | |
| You can override configuration with environment variables: | |
| ```bash | |
| export MCP_SERVER_NAME="Custom-MCP-Server" | |
| export MCP_DATA_DIR="/custom/data/path" | |
| export MCP_LOG_LEVEL="DEBUG" | |
| ``` | |
| ### Directory Structure | |
| Create the required directories: | |
| ```bash | |
| mkdir -p data work logs cache | |
| chmod 755 data work logs cache | |
| ``` | |
| ## Running the Server | |
| ### Method 1: Direct Python Execution | |
| ```bash | |
| # Start the server | |
| python -m mcp_server.main | |
| # Or use the installed command | |
| openproblems-mcp | |
| ``` | |
| ### Method 2: Docker | |
| ```bash | |
| # Run the container | |
| docker run -it --rm \ | |
| -v $(pwd)/data:/app/data \ | |
| -v $(pwd)/work:/app/work \ | |
| -v $(pwd)/logs:/app/logs \ | |
| -v /var/run/docker.sock:/var/run/docker.sock \ | |
| openproblems-spatial-mcp | |
| ``` | |
| ### Method 3: Docker Compose | |
| ```bash | |
| cd docker | |
| docker-compose up | |
| ``` | |
| ## Testing the Installation | |
| ### Run the Test Suite | |
| ```bash | |
| pytest tests/ -v | |
| ``` | |
| ### Use the Example Client | |
| ```bash | |
| python examples/simple_client.py | |
| ``` | |
| ### Manual Testing | |
| 1. **Start the server** (in one terminal): | |
| ```bash | |
| python -m mcp_server.main | |
| ``` | |
| 2. **Test with MCP client** (in another terminal): | |
| ```python | |
| import asyncio | |
| from mcp import ClientSession, StdioServerParameters | |
| from mcp.client.stdio import stdio_client | |
| async def test_connection(): | |
| server_params = StdioServerParameters( | |
| command="python", | |
| args=["-m", "mcp_server.main"], | |
| ) | |
| async with stdio_client(server_params) as (read, write): | |
| async with ClientSession(read, write) as session: | |
| await session.initialize() | |
| # Test echo | |
| result = await session.call_tool("echo_test", {"message": "Hello!"}) | |
| print(f"Echo result: {result}") | |
| # List resources | |
| resources = await session.list_resources() | |
| print(f"Available resources: {len(resources)}") | |
| asyncio.run(test_connection()) | |
| ``` | |
| ## Troubleshooting | |
| ### Common Issues | |
| 1. **Import errors**: | |
| - Ensure the package is installed: `pip install -e .` | |
| - Check Python path: `python -c "import mcp_server; print('OK')"` | |
| 2. **Tool not found errors**: | |
| - Install missing tools (Nextflow, Viash, Docker) | |
| - Check PATH: `which nextflow`, `which viash`, `which docker` | |
| 3. **Permission errors**: | |
| - Ensure Docker daemon is running: `docker version` | |
| - Check directory permissions: `ls -la data/ work/ logs/` | |
| 4. **Port conflicts** (HTTP transport): | |
| - Change port in config: `transport.http_port: 8001` | |
| - Check port usage: `netstat -tulpn | grep 8000` | |
| ### Debug Mode | |
| Enable debug logging: | |
| ```bash | |
| export MCP_LOG_LEVEL=DEBUG | |
| python -m mcp_server.main | |
| ``` | |
| ### Log Files | |
| Check server logs: | |
| ```bash | |
| tail -f logs/mcp_server.log | |
| ``` | |
| ### Health Check | |
| Test server health: | |
| ```bash | |
| # For Docker containers | |
| docker exec openproblems-spatial-mcp python -c "import mcp; print('MCP SDK available')" | |
| # For local installation | |
| python -c "import mcp_server.main; print('Server module available')" | |
| ``` | |
| ## Next Steps | |
| 1. **Read the [API Documentation](API.md)** to understand available tools and resources | |
| 2. **Explore [Examples](../examples/)** to see practical usage patterns | |
| 3. **Check the [Integration Guide](INTEGRATION.md)** for AI agent setup | |
| 4. **Review [Best Practices](BEST_PRACTICES.md)** for optimal usage | |
| ## Support | |
| - **Issues**: [GitHub Issues](https://github.com/openproblems-bio/SpatialAI_MCP/issues) | |
| - **Documentation**: [Project Docs](https://github.com/openproblems-bio/SpatialAI_MCP/docs) | |
| - **Community**: [OpenProblems Discussions](https://github.com/openproblems-bio/openproblems/discussions) | |
| ## Contributing | |
| See [CONTRIBUTING.md](../CONTRIBUTING.md) for development guidelines and contribution instructions. | |