← API reference
SDKs
Official TypeScript and Python clients. Resolve agents by capability in one line — no HTTP boilerplate.
TypeScript / JavaScript
Package: @agentdns/client — Node 18+, Deno, Bun, Cloudflare Workers.
Install
npm install @agentdns/clientbash
Quick start
import { resolve } from '@agentdns/client';
const { matches } = await resolve({ capability: 'contract-review' });
const best = matches[0];
// best.a2a_endpoint, best.mcp_server_url, best.api_endpoint, best.trust_scorets
With API key (600 req/min on Developer)
import { AgentDNSClient } from '@agentdns/client';
const client = new AgentDNSClient({ apiKey: process.env.AGENTDNS_API_KEY });
const { matches } = await client.resolve({
capability: ['contract-review', 'redlining'],
protocol: 'a2a',
limit: 5,
});
const { agent } = await client.getAgent('legal-ai');
const { agents } = await client.searchAgents({ q: 'contract', verified: true });ts
Error handling
import { AgentDNSError } from '@agentdns/client';
try {
await client.resolve({ capability: 'x' });
} catch (e) {
if (e instanceof AgentDNSError) {
console.error(e.code, e.status, e.message);
}
}ts
Python
Package: agentdns — Python 3.9+, httpx + pydantic v2.
Install
pip install agentdnsbash
Quick start
from agentdns import resolve
result = resolve(capability="contract-review")
best = result.matches[0]
# best.a2a_endpoint, best.mcp_server_url, best.api_endpoint, best.trust_scorepython
With API key
from agentdns import AgentDNSClient
client = AgentDNSClient(api_key="adns_k1_...") # or set AGENTDNS_API_KEY env var
result = client.resolve(
capability=["contract-review", "redlining"],
protocol="a2a",
limit=5,
)
agent = client.get_agent("legal-ai")
listing = client.search_agents(q="contract", verified=True)python
Async
import asyncio
from agentdns import AsyncAgentDNSClient
async def main():
async with AsyncAgentDNSClient() as client:
result = await client.resolve(capability="contract-review")
print(result.matches[0].trust_score)
asyncio.run(main())python
Error handling
from agentdns import AgentDNSError, resolve
try:
resolve(capability="x")
except AgentDNSError as e:
print(e.code, e.status, str(e))python
Framework adapters
Drop AgentDNS into LangChain, CrewAI, or Agno with a single import. Each adapter wraps AgentDNSClient.resolve() as the native tool class for that framework.
LangChain — agentdns-langchain
pip install agentdns-langchainbash
from agentdns_langchain import AgentDNSTool
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_openai import ChatOpenAI
resolver = AgentDNSTool(capability="contract-review", protocol="a2a", limit=3)
llm = ChatOpenAI(model="gpt-4o")
agent = create_tool_calling_agent(llm, [resolver], prompt=...)
AgentExecutor(agent=agent, tools=[resolver]).invoke({"input": "Find me a contract review agent"})python
CrewAI — agentdns-crewai
pip install agentdns-crewaibash
from agentdns_crewai import AgentDNSResolveTool
from crewai import Agent, Task, Crew
resolver = AgentDNSResolveTool(capability="contract-review", protocol="a2a")
legal = Agent(
role="Legal researcher",
goal="Find and orchestrate the best contract-review agent",
tools=[resolver],
)
Crew(agents=[legal], tasks=[Task(description="Route this NDA", agent=legal)]).kickoff()python
Agno — agentdns-agno
pip install agentdns-agnobash
from agno.agent import Agent
from agno.models.anthropic import Claude
from agentdns_agno import AgentDNSTools
agent = Agent(
model=Claude(id="claude-sonnet-4-6"),
tools=[AgentDNSTools()],
instructions="When the user asks for a capability, first resolve via AgentDNS, then orchestrate.",
)
agent.print_response("Find an MCP server that can scrape web pages")python