The Explorium MCP Server is a Model Context Protocol server used to interact with the Explorium API. It enables AI assistants to access Explorium's business and prospect data lookup capabilities.
- Overview
- Installation
- Setup for Development
- Running Locally
- Usage with AI Assistants
- Project Structure
- Development Workflow
- Continuous Integration
- Building and Publishing
- License
The Explorium MCP Server allows AI assistants to access the extensive business and prospects databases from Explorium. This enables AI tools to provide accurate, up-to-date information about companies, industries, and professionals directly in chat interfaces.
Install the Explorium MCP Server from PyPI:
pip install explorium-mcp-server
The package requires Python 3.10 or later.
- Clone the repository:
git clone https://github.com/explorium-ai/mcp-explorium.git
cd mcp-explorium
- Set up the development environment using
uv
:
# Install uv if you don't have it
pip install uv
# Create and activate the virtual environment with all development dependencies
uv sync --group dev
- Create a
.env
file in the root directory with your Explorium API key:
EXPLORIUM_API_KEY=your_api_key_here
To obtain an API key, follow the instructions in the Explorium API documentation.
mcp dev local_dev_server.py
-
Follow the official Model Context Protocol guide to install Claude Desktop and set it up to use MCP servers.
-
Add this entry to your
claude_desktop_config.json
file:
{
"mcpServers": {
"Explorium": {
"command": "<PATH_TO_UVX>",
"args": [
"explorium-mcp-server"
],
"env": {
"EXPLORIUM_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
For development, you can use this configuration instead:
{
"mcpServers": {
"Explorium": {
"command": "<UV_INSTALL_PATH>",
"args": [
"run",
"--directory",
"<REPOSITORY_PATH>",
"mcp",
"run",
"local_dev_server.py"
],
"env": {
"EXPLORIUM_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
Replace all placeholders with your actual paths and API key.
Cursor has built-in support for MCP servers.
To configure it to use the Explorium MCP server:
- Go to
Cursor > Settings > Cursor Settings > MCP
- Add an "Explorium" entry with this command:
For development, use:
uv run --directory <repo_path> mcp run local_dev_server.py
You may turn on "Yolo mode" in Cursor settings to use tools without confirming under
Cursor > Settings > Cursor Settings > Features > Chat > Enable Yolo mode
.
mcp-explorium/
├── .github/workflows/ # CI/CD configuration
│ └── ci.yml # Main CI workflow
├── src/ # Source code
│ └── explorium_mcp_server/
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Entry point for direct execution
│ ├── models/ # Data models and schemas
│ └── tools/ # MCP tools implementation
├── tests/ # Test suite
├── .env # Local environment variables (not in repo)
├── local_dev_server.py # Development server script
├── Makefile # Development shortcuts
├── pyproject.toml # Project metadata and dependencies
└── README.md # Project documentation
- Set up the environment as described in Setup for Development
- Make your changes to the codebase
- Format your code:
make format
- Run linting checks:
make lint
- Run tests:
make test
The project uses GitHub Actions for CI/CD. The workflow defined in .github/workflows/ci.yml
does the following:
- Version Check: Ensures the version in
pyproject.toml
is incremented before merging to main - Linting: Runs code style and formatting checks using
ruff
- Testing: Runs the test suite with coverage reporting
- Deployment: Tags the repo with the version from
pyproject.toml
when merged to main
To build the package for distribution:
- Update the version in
pyproject.toml
(required for every new release) - Run the build command:
uv build
This creates a dist/
directory with the built package.
To publish the package to PyPI:
- Ensure you have
twine
installed:
uv pip install twine
- Upload the built package to PyPI:
twine upload dist/*
You'll need to provide your PyPI credentials or configure them in a .pypirc
file.
When changes are merged to the main branch, the CI workflow automatically:
- Tags the repository with the version from
pyproject.toml
- Pushes the tag to GitHub