Skip to main content

MCP server and CLI for researching developer tools using Firecrawl, LangGraph, and Ollama

Project description

Advanced Agent

CLI agent and MCP server for researching developer tools using Firecrawl + LangGraph + Ollama.

It takes a user query (for example, vector databases), finds relevant tools, scrapes key pages, runs structured analysis, and prints concise recommendations. It can run as a standalone CLI or be exposed as an MCP tool for use with Claude and other MCP clients.

Requirements

  • Python >=3.11,<3.14
  • uv installed
  • Node.js and npx (used to run the Firecrawl MCP server)
  • Firecrawl API key
  • Ollama running locally

Quick Start

  1. Install dependencies:
uv sync
  1. Create env file:
cp .env.example .env
  1. Set required values in .env:
  • FIRECRAWL_API_KEY (required)
  • OLLAMA_MODEL and OLLAMA_BASE_URL (defaults are usually fine)
  1. Start Ollama and ensure the model exists:
ollama serve
ollama pull qwen2.5:1.5b
  1. Run the app:
uv run .\main.py

Type your query at the prompt. Use exit or quit to stop.

How It Works

  1. Extract likely tool names from search content
  2. Research each tool's official pages
  3. Analyze results into structured fields (pricing, OSS, APIs, integrations)
  4. Generate a short recommendation summary

Run as MCP Server

The workflow is also exposed as an MCP tool (research_dev_tools) via server.py. To use it with Claude Desktop or another MCP client, add this to your MCP client config:

{
  "mcpServers": {
    "dev-tools-researcher": {
      "command": "uv",
      "args": ["run", "research-mcp-server"],
      "env": {
        "FIRECRAWL_API_KEY": "<your-key>"
      }
    }
  }
}

Or run directly:

uv run research-mcp-server

Project Structure

  • main.py — CLI loop and output formatting
  • server.py — MCP server exposing the workflow as a research_dev_tools tool
  • src/workflow.py — LangGraph workflow orchestration
  • src/firecrawl.py — Firecrawl MCP client (search/scrape via npx firecrawl-mcp)
  • src/models.py — Pydantic state/result models
  • src/prompts.py — Prompt templates

Run with Docker (Local)

Build image locally:

docker build -t advanced-agent:local .

Run interactively with env vars:

docker run --rm -it --env-file .env advanced-agent:local

Run Tests

Install dev dependencies and run tests:

uv sync --dev
uv run pytest -q

Publish with GitHub Actions (GHCR)

This repo includes .github/workflows/docker.yml.

  • On pull requests: runs tests, then builds image only (no push)
  • On main/master push: builds and pushes to GHCR
  • On version tag push (for example v1.2.3): publishes semver tags (1.2.3, 1.2, 1)
  • On manual trigger: builds and pushes

Example:

git tag v1.2.3
git push origin v1.2.3

Published image name:

ghcr.io/<owner>/<repo>:latest

After first push, make sure the GHCR package visibility is set as desired (public/private).

Run published image anywhere locally:

docker run --rm -it \
  --env-file .env \
  ghcr.io/<owner>/<repo>:latest

Common Issues

  • FIRECRAWL_API_KEY is required...

    • Add a valid key to .env.
  • npx: command not found or Firecrawl MCP errors

    • Install Node.js (which includes npx). The Firecrawl MCP server is launched automatically via npx firecrawl-mcp.
  • Ollama connection/model errors

    • Start Ollama (ollama serve) and pull the configured model.
  • Python/import warnings in editor

    • Make sure VS Code is using this project's interpreter: advanced-agent/.venv.
  • Container exits or fails on startup

    • Confirm .env includes valid FIRECRAWL_API_KEY and Ollama settings.
    • If using local Ollama from inside Docker, set OLLAMA_BASE_URL to a host-reachable address (for example http://host.docker.internal:11434).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

advanced_agent-0.1.1.tar.gz (96.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

advanced_agent-0.1.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file advanced_agent-0.1.1.tar.gz.

File metadata

  • Download URL: advanced_agent-0.1.1.tar.gz
  • Upload date:
  • Size: 96.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for advanced_agent-0.1.1.tar.gz
Algorithm Hash digest
SHA256 067f5cc0cbac361ddb3e451a0bbdbd9ad292e750b7a9a953c62c07bee87d8848
MD5 cc6e73af0121a374ac127650754bd54d
BLAKE2b-256 e4ff66a43f880ed43c7210404168ad108b9792ef113f3e2766405420bea2cd96

See more details on using hashes here.

Provenance

The following attestation bundles were made for advanced_agent-0.1.1.tar.gz:

Publisher: pypi.yml on will-dabeest/developer-tools-research-agent-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file advanced_agent-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: advanced_agent-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for advanced_agent-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 128e685040f00219ddd26e0d16f8b31e39f1ce4934c14a2611281c156a83c875
MD5 df23fd144bc2448efa63a00ad5fca706
BLAKE2b-256 02694ada031fa34afc2328867b16ce30b3664e6ccbf84fa97ae4ae9d33043c09

See more details on using hashes here.

Provenance

The following attestation bundles were made for advanced_agent-0.1.1-py3-none-any.whl:

Publisher: pypi.yml on will-dabeest/developer-tools-research-agent-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page