FAQ - Frequently Asked QuestionsΒΆ

This page contains answers to the most frequently asked questions about ToolUniverse.

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.

Use ToolUniverse as a Python library:

from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()

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?ΒΆ

pip install tooluniverse

Do I need API keys?ΒΆ

Some tools require API keys for accessing external services:

Required API Keys: - OpenTargets Platform API key (free registration) - NCBI E-utilities API key (optional but recommended)

How to set API keys:

import os
os.environ['OPENTARGETS_API_KEY'] = 'your_api_key_here'
os.environ['NCBI_API_KEY'] = 'your_ncbi_key_here'

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:

Register for API keys to get higher rate limits:

# Higher limits with API key
os.environ['NCBI_API_KEY'] = 'your_key'

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: Check if gene symbol is valid
query = {
    "name": "UniProt_get_protein_info",
    "arguments": {"gene_symbol": "BRCA1"}  # Use standard gene symbol
}

MCP IntegrationΒΆ

How do I use ToolUniverse with Claude?ΒΆ

  1. Start MCP Server:

    python -m tooluniverse.smcp_server
    
  2. Configure Claude Desktop:

    Add to your Claude configuration:

    {
      "mcpServers": {
        "tooluniverse": {
          "command": "python",
          "args": ["-m", "tooluniverse.smcp_server"]
        }
      }
    }
    
  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": "python",
      "args": ["-m", "tooluniverse.smcp_server", "--port", "3000"]
    },
    "tooluniverse-dev": {
      "command": "python",
      "args": ["-m", "tooluniverse.smcp_server", "--port", "3001", "--config", "dev"]
    }
  }
}

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 about/contributing Tutorial for detailed instructions.

PerformanceΒΆ

How can I speed up queries?ΒΆ

tu = ToolUniverse(enable_cache=True, cache_ttl=3600)

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:

pip install tooluniverse[all]

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=30)
    

Still Having Issues?ΒΆ

If you can’t find the answer here:

  1. Check the documentation: user_guide/index

  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