Metadata-Version: 2.4
Name: langchain-disvr
Version: 0.1.0
Summary: LangChain integration for Disvr — AI agent tool discovery
Project-URL: Homepage, https://www.disvr.top
Project-URL: Repository, https://github.com/Svanik-yan/langchain-disvr
Project-URL: Documentation, https://github.com/Svanik-yan/langchain-disvr#readme
Author-email: Reyn <yanchen330@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agent,disvr,langchain,mcp,tool-discovery
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Requires-Dist: httpx>=0.25.0
Requires-Dist: langchain-core>=0.2.0
Description-Content-Type: text/markdown

# langchain-disvr

LangChain integration for [Disvr](https://www.disvr.top) — tool search engine for AI agents.

Your agent says "I need a translation tool" → Disvr finds the best one.

## Install

```bash
pip install langchain-disvr
```

## Quick Start

```python
from langchain_disvr import DisvrDiscoverTool, DisvrToolDetails

# Create tools
discover = DisvrDiscoverTool(api_key="dsvr_your_key_here")
details = DisvrToolDetails(api_key="dsvr_your_key_here")

# Use standalone
result = discover.invoke({"need": "translate Chinese to Thai"})
print(result)

# Get full details for a recommended tool
detail = details.invoke({"service_id": "service-uuid-from-results"})
print(detail)
```

## Use with LangChain Agent

```python
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
from langchain_disvr import DisvrDiscoverTool, DisvrToolDetails

# Set up tools
tools = [
    DisvrDiscoverTool(api_key="dsvr_your_key_here"),
    DisvrToolDetails(api_key="dsvr_your_key_here"),
]

# Create agent
llm = ChatOpenAI(model="gpt-4o")
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant. When you need an external tool, use disvr_discover to find one."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# Run
result = executor.invoke({"input": "I need to translate a Chinese legal contract to Thai. Find me the best tool."})
```

## Use with Claude + LangChain

```python
from langchain_anthropic import ChatAnthropic
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
from langchain_disvr import DisvrDiscoverTool, DisvrToolDetails

tools = [
    DisvrDiscoverTool(api_key="dsvr_your_key_here"),
    DisvrToolDetails(api_key="dsvr_your_key_here"),
]

llm = ChatAnthropic(model="claude-sonnet-4-20250514")
prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant. Use disvr_discover to find external tools when needed."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = executor.invoke({"input": "Find me a tool that can do OCR on scanned documents"})
```

## API Key

Get a free API key at [https://www.disvr.top/keys](https://www.disvr.top/keys) (1,000 requests/day).

## Tools Provided

| Tool | Description |
|------|-------------|
| `disvr_discover` | Find the best tools for a task. Returns ranked recommendations. |
| `disvr_tool_details` | Get full details: install command, env vars, available functions. |

## License

MIT
