Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ALA API MCP Serversearch for koala sightings near Sydney with a 50km radius"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ALA API MCP Server
A Model Context Protocol (MCP) server for interacting with the Atlas of Living Australia (ALA) API.
Disclaimer: This is a vibe-coded project and only intended for demonstration and educational purposes for the internal ALA team.
Quick Start
Installation
# Clone the repository
git clone https://github.com/yourusername/ala-mcp.git
cd ala-mcp
# Install in development mode with all dependencies
make install-dev
# Or use pip directly
pip install -e ".[dev]"Running the Server
# Run directly
python -m ala_mcp
# Or use the convenience script
./server.py
# Or use make
make runConfiguration with MCP Clients
Amazon Q
q mcp add --name ala-api \
--command /path/to/venv/bin/python \
--args /path/to/ala-mcp/src/ala_mcp/__main__.pyClaude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"ala-api": {
"command": "/absolute/path/to/ala-mcp/venv/bin/python",
"args": ["-m", "ala_mcp"],
"env": {}
}
}
}Important:
Use the absolute path to your venv's Python (e.g.,
/Users/username/Projects/ala-mcp/venv/bin/python)The
-m ala_mcpargument runs the package as a moduleDo NOT use just
python- it won't be found in Claude Desktop's PATH
Usage
The server exposes 7 MCP tools for interacting with the Atlas of Living Australia API:
search_occurrences - Search 152+ million biodiversity records with filtering and spatial search
get_occurrence - Get detailed information about a specific occurrence by UUID
download_occurrences - Request bulk data downloads (sent via email)
count_taxa - Get occurrence counts for taxa lists
create_query_id - Create cached query IDs for complex searches
get_query - Retrieve stored query parameters
api_request - Advanced: Direct API access for custom requests
For a complete list of available endpoints and examples, see API_ENDPOINTS.md.
Example Requests
Search for occurrences using search_occurrences tool:
MCP clients will see this tool with parameters:
query(required): Search term (e.g., "Eucalyptus", ":")filters(optional): Array of filter queriespageSize(optional): Results per page (default: 10)lat,lon,radius(optional): Spatial searchfacets(optional): Facet fields for aggregation
Get specific occurrence using get_occurrence tool:
Simply provide the UUID:
uuid(required): The occurrence record identifier
Download data using download_occurrences tool:
Parameters:
query(required): Search queryemail(required): Email for download notificationreasonTypeId(required): Download reason code (e.g., "10" for testing)fields(required): Comma-separated field listfilters(optional): Filter queriesfileType(optional): "csv" or "tsv" (default: csv)
Advanced users can use api_request tool:
For direct API access with custom parameters:
method: GET, POST, PUT, DELETEendpoint: API pathparams: Query parametersdata: Request bodyheaders: Custom headers
See API_ENDPOINTS.md for comprehensive endpoint documentation and more examples.
Configuration
The server can be configured using environment variables:
Variable | Default | Description |
|
| ALA API base URL |
|
| Request timeout in seconds |
|
| Logging level |
|
| Optional API key for authentication |
Using .env file
Create a .env file in the project root:
ALA_BASE_URL=https://biocache-ws.ala.org.au/ws
ALA_LOG_LEVEL=DEBUG
ALA_API_KEY=your-api-key-hereDevelopment
Setup Development Environment
# Install development dependencies
make install-dev
# Install pre-commit hooks
make pre-commitRunning Tests
# Run all tests
make test
# Run with coverage report
make test-cov
# Run specific test file
pytest tests/test_client.pyCode Quality
# Format code
make format
# Run linting
make lint
# Run type checking
make type-check
# Run security checks
make security
# Run everything
make allAvailable Make Commands
Run make help to see all available commands:
make install- Install production dependenciesmake install-dev- Install development dependenciesmake test- Run testsmake test-cov- Run tests with coveragemake lint- Run lintingmake format- Format codemake type-check- Run type checkingmake security- Run security checksmake clean- Clean build artifactsmake run- Run the servermake build- Build distribution packages
Project Structure
ala-mcp/
├── .github/
│ └── workflows/ # CI/CD workflows
├── src/
│ └── ala_mcp/
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Entry point
│ ├── server.py # MCP server implementation
│ ├── client.py # ALA API client
│ ├── config.py # Configuration management
│ └── logging_config.py # Logging setup
├── tests/ # Test suite
│ ├── conftest.py # Test fixtures
│ ├── test_server.py # Server tests
│ ├── test_client.py # Client tests
│ └── test_config.py # Config tests
├── pyproject.toml # Project metadata and dependencies
├── Makefile # Development commands
└── README.md # This fileContributing
We welcome contributions! Please see CONTRIBUTING.md for details on:
Code of Conduct
Development workflow
Submitting pull requests
Coding standards
License
This project is licensed under the MIT License - see the LICENSE file for details.
Troubleshooting
Server fails to start
Ensure dependencies are installed:
pip install -e ".[dev]"Check Python version:
python --version(requires 3.10+)Verify virtual environment is activated
Tests failing
Install test dependencies:
pip install -e ".[dev]"Clear cache:
make cleanCheck for import errors:
python -c "import ala_mcp"
MCP client connection issues
Verify server path in configuration
Check server logs for errors
Test server manually:
python -m ala_mcp
Resources
Acknowledgments
Atlas of Living Australia for providing the biodiversity data API
The MCP community for the protocol specification
All contributors to this project
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.