Science Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Science Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for interdisciplinary and transdisciplinary AI-assisted research — paper ingestion, semantic search across literature, citation graph traversal, cross-domain knowledge synthesis, and research workflow automation
Built with FastMCP and mcp-refcache for efficient handling of large data in AI agent tools.
# Clone the repository
git clone https://github.com/l4b4r4b4b4/science-mcp
cd science-mcp
# Install dependencies
uv sync
# Run the server (stdio mode for Claude Desktop)
uv run science-mcp
# Run the server (SSE/HTTP mode for deployment)
uv run science-mcp --transport sse --port 8000# Run directly with uvx (no install needed)
uvx science-mcp stdio
# Or install globally
uv tool install science-mcp
science-mcp --help# Pull and run from GHCR
docker pull ghcr.io/l4b4r4b4b4/science-mcp:latest
docker run -p 8000:8000 ghcr.io/l4b4r4b4b4/science-mcp:latest
# Or build locally with Docker Compose
docker compose up
# Build images manually
docker compose --profile build build base
docker compose buildAdd to your claude_desktop_config.json:
{
"mcpServers": {
"science-mcp": {
"command": "uv",
"args": ["run", "science-mcp"],
"cwd": "/path/to/science-mcp"
}
}
}The project includes .zed/settings.json pre-configured for MCP context servers.
science-mcp/
├── app/ # Application code
│ ├── __init__.py # Version export
│ ├── server.py # Main server with tools
│ ├── tools/ # Tool modules
│ └── __main__.py # CLI entry point
├── tests/ # Test suite
│ ├── conftest.py # Pytest fixtures
│ └── test_server.py # Server tests
├── docker/
│ ├── Dockerfile.base # Python slim base image with dependencies
│ ├── Dockerfile # Production image (extends base)
│ └── Dockerfile.dev # Development with hot reload
├── .github/
│ └── workflows/
│ ├── ci.yml # CI pipeline (lint, test, security)
│ ├── publish.yml # PyPI trusted publisher
│ └── release.yml # Docker build & publish to GHCR
├── .agent/ # AI assistant workspace
│ └── goals/
│ └── 00-Template-Goal/ # Goal tracking template
├── pyproject.toml # Project config
├── docker-compose.yml # Local development & production
├── flake.nix # Nix dev shell
└── .rules # AI assistant guidelines# Install dependencies
uv sync
# Install pre-commit and pre-push hooks
uv run pre-commit install --install-hooks
uv run pre-commit install --hook-type pre-pushuv run pytest
uv run pytest --cov # With coverageuv run ruff check . --fix
uv run ruff format .uv run mypy app/# Run development container with hot reload
docker compose --profile dev up
# Build base image (for publishing)
docker compose --profile build build base
# Build all images
docker compose buildnix develop # Enter dev shell with all tools| Variable | Description | Default |
|---|---|---|
LANGFUSE_PUBLIC_KEY | Langfuse public key | - |
LANGFUSE_SECRET_KEY | Langfuse secret key | - |
LANGFUSE_HOST | Langfuse host URL | https://cloud.langfuse.com |
uvx science-mcp --help
Commands:
stdio Start server in stdio mode (for Claude Desktop and local CLI)
sse Start server in SSE mode (Server-Sent Events)
streamable-http Start server in streamable HTTP mode (recommended for remote/Docker)
# Examples:
uvx science-mcp stdio # Local CLI mode
uvx science-mcp sse --port 8000 # SSE on port 8000
uvx science-mcp streamable-http --host 0.0.0.0 # Docker/remote modeThis project uses a CI-gated workflow to ensure code quality and safe releases:
┌─────────────────────────────────────────────────────────────┐
│ Feature Branch → Open PR │
│ ↓ │
│ CI Runs (lint, test, security) │
│ ↓ │
│ ✅ CI Must Pass (enforced by branch protection) │
│ ↓ │
│ Merge to main │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ CI Re-runs on main │
│ ↓ │
│ Release Workflow waits for CI Success │
│ ↓ │
│ Docker Images Built & Pushed to GHCR │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Manually Create GitHub Release │
│ ↓ │
│ Publish Workflow verifies Release succeeded │
│ ↓ │
│ Package Published to PyPI │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ CD Workflow deploys (staging/production) │
└─────────────────────────────────────────────────────────────┘Key Safeguards:
Manual Gates:
Configure trusted publisher at PyPI:
science-mcpl4b4r4b4b4science-mcppublish.ymlpypiImages are automatically published to GHCR on:
main branch → latest tagv*.*.*) → latest, v0.0.1, 0.0.1, 0.0 tagsMIT License - see LICENSE for details.
See CONTRIBUTING.md for development guidelines.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.