Comprehensive FAQ

This page contains detailed answers to frequently asked questions about ToolUniverse.

Tip

Need a quick answer?

For brief answers to the most common questions, see Comprehensive FAQ. This page provides comprehensive information with detailed explanations, troubleshooting tips, and advanced topics.

General Questions

What is ToolUniverse?

ToolUniverse is a comprehensive collection of scientific tools for Agentic AI, offering integration with various scientific databases and services. It provides a unified interface to access data from FDA, OpenTargets, ChEMBL, PubTator, and many other sources.

What databases are supported?

ToolUniverse integrates with 20+ scientific databases:

  • Drug Information: FDA FAERS, ChEMBL, PubChem, DrugBank

  • Gene/Protein Data: UniProt, Ensembl, Human Protein Atlas

  • Disease Information: OpenTargets, DisGeNET, OMIM

  • Literature: PubMed, PubTator

  • Clinical Data: ClinicalTrials.gov, UK Biobank

  • Pathway Analysis: Enrichr, KEGG, Reactome

Installation & Setup

How do I install ToolUniverse?

Do I need API keys?

Most tools work without API keys! However, some tools require authentication or provide higher rate limits with API keys.

Quick answer:

  • No API keys needed for most tools (PubMed, UniProt, ChEMBL, OpenTargets, etc.)

  • Recommended for better performance: NCBI, FDA (3-10x faster rate limits)

  • Required for specific features: NVIDIA NIM (structure prediction), USPTO (patents), DisGeNET, OMIM

For complete details, see API Keys and Authentication which covers all API keys, how to obtain them, rate limits, and configuration methods.

Common Issues

Why am I getting rate limit errors?

Many scientific APIs have rate limits. ToolUniverse implements automatic rate limiting, but you may still encounter limits:

Tool returns empty results?

Check these common issues:

  1. Correct identifiers: Ensure you’re using the right ID format

  2. API connectivity: Test your internet connection

  3. Service status: Check if the external service is available

  4. Query parameters: Verify your search parameters are valid

# Example: Retrieve UniProt function by accession
query = {
    "name": "UniProt_get_function_by_accession",
    "arguments": {"accession": "P38398"}  # BRCA1 accession
}

MCP Integration

How do I use ToolUniverse with Claude?

  1. Start MCP Server:

    tooluniverse-smcp
    
  2. Configure Claude Desktop:

    Add to your Claude configuration:

    {
      "mcpServers": {
        "tooluniverse": {
          "command": "tooluniverse-smcp-stdio",
          "args": ["--compact-mode"]
        }
      }
    }
    
  3. Test the connection:

    Ask Claude: “What tools are available from ToolUniverse?”

Can I use multiple MCP servers?

Yes! You can run multiple ToolUniverse instances or combine with other MCP servers:

{
  "mcpServers": {
    "tooluniverse-main": {
      "command": "tooluniverse-smcp",
      "args": ["--port", "3000", "--compact-mode"]
    },
    "tooluniverse-dev": {
      "command": "tooluniverse-smcp",
      "args": ["--port", "3001", "--compact-mode", "--load", "community/dev-tools"]
    }
  }
}

Development

How do I add a new tool?

  1. Create tool class:

    from tooluniverse.base_tool import BaseTool
    
    class MyNewTool(BaseTool):
        def __init__(self):
            super().__init__(
                name="my_new_tool",
                description="Description of what it does"
            )
    
        def run(self, **kwargs):
            # Implementation here
            return results
    
  2. Register the tool:

    from tooluniverse import ToolRegistry
    
    registry = ToolRegistry()
    registry.register_tool(MyNewTool)
    
  3. Add tests:

    def test_my_new_tool():
        tool = MyNewTool()
        result = tool.run(test_parameter="test_value")
        assert result is not None
    

How do I contribute?

  1. Fork the repository

  2. Create a feature branch

  3. Add your changes with tests

  4. Submit a pull request

See our Contributing to ToolUniverse Tutorial for detailed instructions.

Performance

How can I speed up queries?

Why is the first query slow?

The first query often takes longer because:

  1. Tool loading: Tools are loaded on first use

  2. API connection: Initial connection setup

  3. Authentication: API key validation

Subsequent queries will be much faster.

Troubleshooting

Getting import errors?

Common solutions:

Network connectivity issues?

  1. Check internet connection

  2. Verify proxy settings if behind corporate firewall

  3. Test specific endpoints:

    import requests
    response = requests.get('https://platform-api.opentargets.org/api/v4/graphql')
    print(response.status_code)
    
  4. Configure timeouts:

    tu = ToolUniverse()  # timeout is set per HTTP request, not at the ToolUniverse level
    

Still Having Issues?

If you can’t find the answer here:

  1. Check the documentation: Tutorial Navigation

  2. Search existing issues: GitHub Issues

  3. Ask the community: Join our Discord server

  4. Report a bug: Create a new GitHub issue with details

Note

When reporting issues, please include:

  • ToolUniverse version

  • Python version

  • Operating system

  • Full error message

  • Minimal code example