Skip to content

sophymarine/langchain-openregistry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

langchain-openregistry

LangChain toolkit preconfigured for the OpenRegistry MCP server — live, real-time access to 27 national company registries (UK Companies House, France RNE, Germany Handelsregister, Italy InfoCamere via EU BRIS, Spain BORME, Korea OpenDART, plus 21 more).

PyPI License: MIT

Every tool call is a real-time query against the upstream government API at the moment the agent asks. No data is cached or aggregated, so the agent always sees the registry's own response with all field names preserved.

Install

pip install langchain-openregistry

Usage

Anonymous use — no signup, no API key beyond the LLM provider's own:

from langchain_openregistry import OpenRegistryToolkit
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

toolkit = OpenRegistryToolkit()
tools = await toolkit.aget_tools()

agent = create_agent(ChatOpenAI(model="gpt-4.1"), tools)

result = await agent.ainvoke({
    "messages": [
        {
            "role": "user",
            "content": (
                "Find Tesco PLC on Companies House and walk its corporate"
                " ownership chain across jurisdictions."
            ),
        }
    ]
})
print(result["messages"][-1].content)

In a synchronous context, toolkit.get_tools() is a thin asyncio.run() wrapper around aget_tools().

Authenticated tier

The free anonymous tier allows 20 calls/min per IP and a cross-border fan-out of 3 countries / 60s. For higher limits, complete the OAuth 2.1 flow at openregistry.sophymarine.com/account and pass the resulting bearer token:

toolkit = OpenRegistryToolkit(oauth_token=OPENREGISTRY_TOKEN)

Restricting the tool surface

OpenRegistry exposes ~30 tools. To keep the agent's prompt lean, allowlist just the ones you need:

toolkit = OpenRegistryToolkit(
    allowed_tools=[
        "search_companies",
        "get_company_profile",
        "get_officers",
        "get_persons_with_significant_control",
    ],
)

What's under the hood

This package is a thin convenience wrapper around langchain-mcp-adapters' MultiServerMCPClient with the OpenRegistry endpoint baked in. If you need MCP prompts, resources, or fine-grained session control, reach into the underlying client:

toolkit = OpenRegistryToolkit()
client = toolkit.client  # MultiServerMCPClient
async with client.session("openregistry") as session:
    ...

License

MIT — see LICENSE.

OpenRegistry is a platform by Sophymarine. The hosted service is not affiliated with any of the national company registries it proxies.

Releases

No releases published

Packages

 
 
 

Contributors

Languages