landuse-mcp


Namelanduse-mcp JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryAn MCP for retrieving land use data for a given location
upload_time2025-07-08 16:40:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords geospatial gis landuse mcp nlcd
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # landuse-mcp

A Model Context Protocol (MCP) server for retrieving land use data for given geographical locations using the National Land Cover Database (NLCD) and other geospatial datasets.

## Features

- **Land Cover Data**: Retrieve detailed land cover classifications for any coordinate
- **Soil Type Information**: Get FAO soil type classifications for geographical points
- **Temporal Data**: Access available dates for land use data at specific locations
- **MCP Integration**: Full Model Context Protocol support for AI agents
- **Geospatial Processing**: Built on robust geospatial libraries for accurate data retrieval

## Quick Start

```bash
# Install dependencies and set up development environment
make dev

# Run the MCP server
make server

# Run tests
make test-coverage

# Demo functionality
make demo
```

## Installation

### From PyPI (Recommended)

```bash
# Install with uvx
uvx landuse-mcp
```

### From Source

```bash
# Clone the repository
git clone https://github.com/justaddcoffee/landuse-mcp.git
cd landuse-mcp

# Install in development mode
make dev
```

## Usage

### Command Line Interface

```bash
# Run the MCP server
landuse-mcp

# Or using uv
uv run landuse-mcp
```

### Python API

```python
from landuse_mcp.main import get_land_cover, get_soil_type, get_landuse_dates

# Get land cover data for Death Valley
land_cover = get_land_cover(36.5322649, -116.9325408, "2001-01-01", "2002-01-01")
print(land_cover)

# Get soil type for a location
soil_type = get_soil_type(32.95047, -87.393259)
print(soil_type)  # e.g., "Cambisols"

# Get available dates for land use data
dates = get_landuse_dates(36.5322649, -116.9325408)
print(dates)  # List of available dates
```

### Testing MCP Protocol

```bash
# Test MCP handshake
make test-mcp

# Extended MCP testing
make test-mcp-extended
```

## Integration with AI Tools

### Claude Desktop

Add this to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "landuse-mcp": {
      "command": "uvx",
      "args": ["landuse-mcp"],
      "cwd": "/path/to/landuse-mcp"
    }
  }
}
```

### Claude Code

```bash
claude mcp add -s project landuse-mcp uvx landuse-mcp
```

### Goose

```bash
goose session --with-extension "uvx landuse-mcp"
```

## Available Tools

The MCP server provides three main tools:

1. **`get_land_cover`**: Retrieve land cover data for coordinates with temporal range
2. **`get_soil_type`**: Get FAO soil classification for a location
3. **`get_landuse_dates`**: List available dates for land use data at coordinates

## Data Sources

- **National Land Cover Database (NLCD)**: Primary source for US land cover data
- **FAO Soil Types**: Global soil classification system
- **nmdc-geoloc-tools**: Underlying geospatial processing library

## Development

### Development Setup

```bash
# Full development setup
make dev

# Install production dependencies only
make install

# Run tests with coverage
make test-coverage

# Code quality checks
make format lint mypy

# Check for unused dependencies
make deptry

# Clean build artifacts
make clean
```

### Build and Release

```bash
# Build package
make build

# Upload to TestPyPI
make upload-test

# Upload to PyPI
make upload

# Complete release workflow
make release
```

### Testing

```bash
# Run all tests
make test-coverage

# Run integration tests
make test-integration

# Test MCP protocol
make test-mcp test-mcp-extended
```

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests: `make test-coverage`
5. Run quality checks: `make format lint mypy`
6. Submit a pull request

## Requirements

- Python 3.10+
- uv (recommended)
- Dependencies managed via `pyproject.toml`

## License

MIT License - see LICENSE file for details.

## Authors

- Mark Miller
- Justin Reese  
- Charles Parker

## Citation

If you use this software in your research, please cite it as:

```bibtex
@software{landuse_mcp,
  title = {landuse-mcp: A Model Context Protocol server for land use data},
  author = {Miller, Mark and Reese, Justin and Parker, Charles},
  url = {https://github.com/justaddcoffee/landuse-mcp},
  version = {0.1.0},
  year = {2024}
}
```
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "landuse-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "geospatial, gis, landuse, mcp, nlcd",
    "author": null,
    "author_email": "Justin Reese <justaddcoffee@gmail.com>, Mark Andrew Miller <MAM@lbl.gov>, Charles Parker <ctparker@lbl.gov>",
    "download_url": "https://files.pythonhosted.org/packages/bc/5a/d8ac803086df823ffb60913169070c6e7c7c0d19cab240ebd0001da97535/landuse_mcp-0.1.5.tar.gz",
    "platform": null,
    "description": "# landuse-mcp\n\nA Model Context Protocol (MCP) server for retrieving land use data for given geographical locations using the National Land Cover Database (NLCD) and other geospatial datasets.\n\n## Features\n\n- **Land Cover Data**: Retrieve detailed land cover classifications for any coordinate\n- **Soil Type Information**: Get FAO soil type classifications for geographical points\n- **Temporal Data**: Access available dates for land use data at specific locations\n- **MCP Integration**: Full Model Context Protocol support for AI agents\n- **Geospatial Processing**: Built on robust geospatial libraries for accurate data retrieval\n\n## Quick Start\n\n```bash\n# Install dependencies and set up development environment\nmake dev\n\n# Run the MCP server\nmake server\n\n# Run tests\nmake test-coverage\n\n# Demo functionality\nmake demo\n```\n\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\n# Install with uvx\nuvx landuse-mcp\n```\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/justaddcoffee/landuse-mcp.git\ncd landuse-mcp\n\n# Install in development mode\nmake dev\n```\n\n## Usage\n\n### Command Line Interface\n\n```bash\n# Run the MCP server\nlanduse-mcp\n\n# Or using uv\nuv run landuse-mcp\n```\n\n### Python API\n\n```python\nfrom landuse_mcp.main import get_land_cover, get_soil_type, get_landuse_dates\n\n# Get land cover data for Death Valley\nland_cover = get_land_cover(36.5322649, -116.9325408, \"2001-01-01\", \"2002-01-01\")\nprint(land_cover)\n\n# Get soil type for a location\nsoil_type = get_soil_type(32.95047, -87.393259)\nprint(soil_type)  # e.g., \"Cambisols\"\n\n# Get available dates for land use data\ndates = get_landuse_dates(36.5322649, -116.9325408)\nprint(dates)  # List of available dates\n```\n\n### Testing MCP Protocol\n\n```bash\n# Test MCP handshake\nmake test-mcp\n\n# Extended MCP testing\nmake test-mcp-extended\n```\n\n## Integration with AI Tools\n\n### Claude Desktop\n\nAdd this to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"landuse-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"landuse-mcp\"],\n      \"cwd\": \"/path/to/landuse-mcp\"\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add -s project landuse-mcp uvx landuse-mcp\n```\n\n### Goose\n\n```bash\ngoose session --with-extension \"uvx landuse-mcp\"\n```\n\n## Available Tools\n\nThe MCP server provides three main tools:\n\n1. **`get_land_cover`**: Retrieve land cover data for coordinates with temporal range\n2. **`get_soil_type`**: Get FAO soil classification for a location\n3. **`get_landuse_dates`**: List available dates for land use data at coordinates\n\n## Data Sources\n\n- **National Land Cover Database (NLCD)**: Primary source for US land cover data\n- **FAO Soil Types**: Global soil classification system\n- **nmdc-geoloc-tools**: Underlying geospatial processing library\n\n## Development\n\n### Development Setup\n\n```bash\n# Full development setup\nmake dev\n\n# Install production dependencies only\nmake install\n\n# Run tests with coverage\nmake test-coverage\n\n# Code quality checks\nmake format lint mypy\n\n# Check for unused dependencies\nmake deptry\n\n# Clean build artifacts\nmake clean\n```\n\n### Build and Release\n\n```bash\n# Build package\nmake build\n\n# Upload to TestPyPI\nmake upload-test\n\n# Upload to PyPI\nmake upload\n\n# Complete release workflow\nmake release\n```\n\n### Testing\n\n```bash\n# Run all tests\nmake test-coverage\n\n# Run integration tests\nmake test-integration\n\n# Test MCP protocol\nmake test-mcp test-mcp-extended\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run tests: `make test-coverage`\n5. Run quality checks: `make format lint mypy`\n6. Submit a pull request\n\n## Requirements\n\n- Python 3.10+\n- uv (recommended)\n- Dependencies managed via `pyproject.toml`\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Authors\n\n- Mark Miller\n- Justin Reese  \n- Charles Parker\n\n## Citation\n\nIf you use this software in your research, please cite it as:\n\n```bibtex\n@software{landuse_mcp,\n  title = {landuse-mcp: A Model Context Protocol server for land use data},\n  author = {Miller, Mark and Reese, Justin and Parker, Charles},\n  url = {https://github.com/justaddcoffee/landuse-mcp},\n  version = {0.1.0},\n  year = {2024}\n}\n```",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An MCP for retrieving land use data for a given location",
    "version": "0.1.5",
    "project_urls": {
        "Documentation": "https://github.com/justaddcoffee/landuse-mcp#readme",
        "Homepage": "https://github.com/justaddcoffee/landuse-mcp",
        "Issues": "https://github.com/justaddcoffee/landuse-mcp/issues",
        "Repository": "https://github.com/justaddcoffee/landuse-mcp"
    },
    "split_keywords": [
        "geospatial",
        " gis",
        " landuse",
        " mcp",
        " nlcd"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9231a64f97ee0b812798991f902ae3ef3dab2fed7335d9b7d8606b603a35a19e",
                "md5": "a3a05f0f1f19adeda74afec2dea3b4cf",
                "sha256": "166a594ec57c2410c5f2801864843ed26c4ed1f9539af2d5d2a22cccfa6b9cb8"
            },
            "downloads": -1,
            "filename": "landuse_mcp-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a3a05f0f1f19adeda74afec2dea3b4cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 5866,
            "upload_time": "2025-07-08T16:40:58",
            "upload_time_iso_8601": "2025-07-08T16:40:58.076203Z",
            "url": "https://files.pythonhosted.org/packages/92/31/a64f97ee0b812798991f902ae3ef3dab2fed7335d9b7d8606b603a35a19e/landuse_mcp-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc5ad8ac803086df823ffb60913169070c6e7c7c0d19cab240ebd0001da97535",
                "md5": "dc4370e73a6cdcbf4fd0847cd4a5faa3",
                "sha256": "39f511f91eb6c5ca963f8eb9a78434d6b59d2b4fa4e7868195bd873e540d9dbc"
            },
            "downloads": -1,
            "filename": "landuse_mcp-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "dc4370e73a6cdcbf4fd0847cd4a5faa3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 10330,
            "upload_time": "2025-07-08T16:40:59",
            "upload_time_iso_8601": "2025-07-08T16:40:59.359044Z",
            "url": "https://files.pythonhosted.org/packages/bc/5a/d8ac803086df823ffb60913169070c6e7c7c0d19cab240ebd0001da97535/landuse_mcp-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 16:40:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "justaddcoffee",
    "github_project": "landuse-mcp#readme",
    "github_not_found": true,
    "lcname": "landuse-mcp"
}
        
Elapsed time: 0.42873s