Skip to main content
Glama
taiste

Harvest MCP Server

by taiste

list_clients

Retrieve active or inactive clients from the Harvest MCP Server using optional filtering to efficiently manage and organize client data.

Instructions

List clients with optional filtering.

Args:
    is_active: Pass true to only return active clients and false to return inactive clients

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
is_activeNo

Implementation Reference

  • The handler function that implements the list_clients tool. It constructs parameters based on the is_active filter and calls the shared harvest_request helper to fetch clients from the Harvest API, returning the JSON response.
    async def list_clients(is_active: bool = None):
        """List clients with optional filtering.
    
        Args:
            is_active: Pass true to only return active clients and false to return inactive clients
        """
        params = {}
        if is_active is not None:
            params["is_active"] = "true" if is_active else "false"
    
        response = await harvest_request("clients", params)
        return json.dumps(response, indent=2)
  • The @mcp.tool() decorator registers the list_clients function as an MCP tool.
    @mcp.tool()
  • Shared helper function used by list_clients (and other tools) to make authenticated HTTP requests to the Harvest API.
    async def harvest_request(path, params=None, method="GET"):
        headers = {
            "Harvest-Account-Id": HARVEST_ACCOUNT_ID,
            "Authorization": f"Bearer {HARVEST_API_KEY}",
            "User-Agent": "Harvest MCP Server",
            "Content-Type": "application/json",
        }
    
        url = f"https://api.harvestapp.com/v2/{path}"
    
        async with httpx.AsyncClient() as client:
            if method == "GET":
                response = await client.get(url, headers=headers, params=params)
            else:
                response = await client.request(method, url, headers=headers, json=params)
    
            if response.status_code != 200:
                raise Exception(
                    f"Harvest API Error: {response.status_code} {response.text}"
                )
    
            return response.json()
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/taiste/harvest-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server