@kooperativa_team/mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KOOPERATIVA_API_KEY | Yes | Kooperativa API key. Get one from your account dashboard. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kooperativa_account_infoA | Get the authenticated Kooperativa account's email, license status (active/plan/expiry), and API usage this month/today, broken down by endpoint. Call this first if you're unsure whether the license is active before running a large batch job. |
| kooperativa_health_checkA | Simple liveness probe for the Kooperativa API. No authentication required. Use to verify connectivity before running a batch job. |
| kooperativa_enrich_personA | Look up a person's full professional profile (work history, education, skills, certifications, honors, publications, volunteering) from the Kooperativa data lake. Provide exactly one of linkedin_url, username, or id. Returns 404 if the profile hasn't been indexed yet (no on-demand live scrape). |
| kooperativa_check_personA | Cheaply check whether Kooperativa already holds a given profile, without fetching the full record. Returns the matched id, full_name, and fetched_at on success, or 404 if not indexed yet. Use this to filter a list before calling enrich_person on each one. |
| kooperativa_search_peopleA | Search the Kooperativa data lake of professional profiles using any combination of filters (title, company, location, industry, seniority, headcount, skills, tenure, recent job change, past employer, education). Filters combine with AND logic. Returns lightweight profile previews with pagination; pass a result's id to kooperativa_enrich_person for the full record. |
| kooperativa_bulk_enrich_peopleA | Enrich up to 100 profiles in a single call. Pass an array where each item has exactly one of id, username, or linkedin_url. Unmatched identifiers are silently skipped and counted in not_found. |
| kooperativa_person_colleaguesA | List a person's current colleagues (everyone else working at their current company right now). Useful for mapping org structure or finding an alternate contact at a target account. Requires the Kooperativa profile id (from enrich_person or search_people). |
| kooperativa_person_similarA | Find people similar to a given person (same seniority, industry, and country), excluding themselves. Useful for lookalike audiences or finding alternative contacts at competing companies. Requires the Kooperativa profile id. |
| kooperativa_person_job_changesA | People who recently started a new job — a strong outreach signal (new role = new budget, new vendor decisions). Optionally filter to people who previously worked at a specific company_id. Sorted most-recent-first. |
| kooperativa_enrich_companyA | Look up a company's full profile (headcount, follower count, founding year, HQ address, industries, specialities, office locations) from the Kooperativa data lake. Provide exactly one of linkedin_url, username, company_id, or id. Returns 404 if not indexed yet. |
| kooperativa_check_companyA | Cheaply check whether Kooperativa already holds a given company, without fetching the full record. Returns matched id, name, and fetched_at on success, or 404 if not indexed yet. |
| kooperativa_search_companiesA | Search the Kooperativa data lake of companies by name, HQ location, industry, and headcount range. All filters are optional and combine with AND logic, but at least one filter is required. min_staff/max_staff are both inclusive and either can be omitted. |
| kooperativa_company_current_employeesA | List people currently working at a company, by its numeric company_id. Returns lightweight profile previews with offset pagination (total/pages). Pass a result's id to kooperativa_enrich_person for the full record. |
| kooperativa_company_past_employeesA | List people who previously worked at a company (held a role there, since moved on), by numeric company_id. Each result includes a past_positions array with the specific role(s) held there. Uses has_more/next_page pagination. |
| kooperativa_company_headcount_by_seniorityA | Breakdown of a company's indexed profiles by seniority level (c-level, vp, director, manager, individual). Useful for org intelligence and account qualification. Counts reflect only Kooperativa's indexed profiles, not the company's real total headcount. |
| kooperativa_company_hiring_signalsA | People who recently joined a company — a signal of growth, investment, or expansion. Sorted by join date descending, look-back window configurable in days (default 90, max 365). |
| kooperativa_list_monitorsA | List all active webhook monitors for the authenticated workspace. |
| kooperativa_create_monitorA | Subscribe to change events on a professional profile or company URL. Kooperativa sends a signed POST to webhook_url whenever a change is detected (job change, title change, headline change, location change, skills change for people; staff count or description change for companies). webhook_url must be HTTPS. The returned webhook_secret for signature verification is only shown once, at creation time. |
| kooperativa_delete_monitorA | Stop monitoring a profile or company and delete the monitor by its ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Every tool has a clearly distinct role: account/license checks, health probe, person/company lookup/search/check, relationship and signal queries, and monitor lifecycle. Even similar tools like check_person vs enrich_person are explicitly differentiated as cheap existence check vs full profile fetch.
The shared kooperativa_ prefix and snake_case make the set easy to navigate, and action verbs like search, check, enrich, create, and delete are used consistently. Minor deviations exist where resource-first names are used (person_colleagues, company_current_employees, company_hiring_signals), but they still follow an obvious and predictable pattern.
Nineteen tools is on the heavier side, but the count is justified by the server's breadth: people, companies, signals, account utilities, and webhook monitoring. Each tool maps to a distinct operation and none feel redundant.
The surface covers the core workflow well: check existence, search, enrich single/bulk, and related people/company insights, plus monitor create/list/delete. The only notable gap is the lack of an update_monitor endpoint, but this can be worked around with delete and recreate.