[FEATURE] DNS Doctor tools: domain scan, DMARC upgrade, propagation check
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 58.8k
- Forks
- 8.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 109
Description
Feature Area
Integration with external tools
Is your feature request related to a an existing bug? Please link it here.
NA
Describe the solution you'd like
Add tools over the hosted DNS Doctor API to lib/crewai-tools, so a crew can check and fix a domain's DNS and email authentication without a model guessing at records:
DnsDoctorScanTool: the full report for a domain (SPF, DKIM, DMARC, MX, DNS health, blacklists, domain and TLS expiry) with deterministic per-check verdicts and copy-paste fix records produced by a validating engine.DnsDoctorDmarcUpgradeTool: the next safe DMARC record for a domain, alignment-gated, with the rationale (the record can be null; then the rationale is the answer).DnsDoctorPropagationTool: whether a DNS change has propagated, read from six locations on four continents.
No API key is needed; an optional DNSDOCTOR_API_TOKEN raises the rate limit. The tools use the existing requests dependency, relay responses verbatim as JSON text, and return transport failures (rate limit, 5xx, network) as text that says they are not a verdict about the domain, so an agent never reads an outage as a finding.
Describe alternatives you've considered
Wrapping the API in a custom tool inside each crew. That works, but every crew re-implements the same failure handling and loses the safety wording (verbatim records, transient is not a verdict) that keeps agents from inventing DNS records.
Additional context
Implementation is ready: tool folder with README, pydantic args_schema with an enum for record types, env_vars declared, exports in both __init__ files, the three generated tool.specs.json entries, and network-mocked tests (uv run --package crewai-tools pytest lib/crewai-tools/tests/tools/dns_doctor_tool_test.py, 6 passed; pre-commit clean). Authored with an AI coding assistant working from the contributing guide; please apply the llm-generated label if the reporter cannot.
Willingness to Contribute
Yes, I'd be happy to submit a pull request
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in lib/crewai-tools and run the named network-mocked test at lib/crewai-tools/tests/tools/dns_doctor_tool_test.py to understand the expected behavior. Done means the three DNS Doctor tools, README, schemas, environment declaration, exports, tool.specs.json entries, and transport-failure wording are covered by the tests and pre-commit remains clean.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100