Crmport

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 3, 2026

HubSpot CRM objects, properties, owners, and associations: list, search, write.

VerifiedSTDIODesktop onlyBusiness & Commerce

Overview

Crmport's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open Crmport in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

crmport

crmport is a small workbench for a HubSpot CRM portal. It treats the CRM the way the API does: everything is an object — a contact, a company, a deal, a ticket — identified by an object type and an ID, carrying a free-form map of properties. From that one idea crmport lists objects with paging, searches them with HubSpot filter groups, reads, creates, updates, and archives them one at a time or in a batch, inspects the property definitions for a type, looks up the owners who can hold records, and reads or creates the associations that connect one object to another. One binary serves a command-line interface and a stdio MCP server.

A HubSpot private-app access token is required. Put it in the HUBSPOT_ACCESS_TOKEN environment variable; it is sent to the API as an Authorization: Bearer header and never appears in output. When the variable is missing, every call fails with an error that names it, before any request is made.

This is a core subset of the HubSpot platform: CRM objects, properties, owners, and associations. Files, forms, marketing email, blogs and CMS content, custom object schema creation, workflows, and OAuth app management are not part of this tool.

Install

bash
npx @reneturcios/crmport list contacts --limit 10

Or run the container image:

bash
docker run -i -e HUBSPOT_ACCESS_TOKEN ghcr.io/cloudcorprecords/crmport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

bash
export HUBSPOT_ACCESS_TOKEN=<redacted>
crmport list contacts --limit 25 --properties firstname,emailcrmport search contacts '[{"filters":[{"propertyName":"lastname","operator":"EQ","value":"Smith"}]}]'crmport get contacts 12345crmport create deals '{"dealname":"New deal","amount":"5000"}'crmport update deals 67890 '{"amount":"7500"}'crmport delete tickets 11111crmport batch-create companies '[{"properties":{"name":"Acme"}}]'crmport properties contactscrmport owner 22222crmport owners --limit 10crmport associations contacts 12345 companiescrmport associate contacts 12345 companies 99999 --type-id 1
crmport --version

Each command prints the upstream JSON payload. Exit codes: 0 on success, 1 when a call fails (including a missing HUBSPOT_ACCESS_TOKEN or an API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/crmport mcp

MCP client configuration:

json
{  "mcpServers": {    "crmport": {      "command": "npx",      "args": ["-y", "@reneturcios/crmport", "mcp"],      "env": { "HUBSPOT_ACCESS_TOKEN": "pat-..." }    }  }}

Tools

ToolInputWhat it returns
hubspot_list_objectsobjectType (required), limit, after, properties (optional)A page of CRM objects of that type.
hubspot_search_objectsobjectType, filterGroups (required), properties, limit, after, sorts (optional)Objects matching the filter groups.
hubspot_get_objectobjectType, objectId (required), properties (optional)The single object.
hubspot_create_objectobjectType, properties (required), associations (optional)The created object.
hubspot_update_objectobjectType, objectId, properties (required)The updated object.
hubspot_delete_objectobjectType, objectId (required)An archive receipt; HubSpot's delete moves the object to the recycle bin.
hubspot_batch_create_objectsobjectType, inputs (required)The batch creation results.
hubspot_list_propertiesobjectType (required)Property definitions for the type.
hubspot_get_ownerownerId (required)The owner record.
hubspot_list_ownerslimit, after (optional)A page of owners.
hubspot_list_associationsobjectType, objectId, toObjectType (required), limit, after (optional)Associations from the object to the other type.
hubspot_create_associationobjectType, objectId, toObjectType, toObjectId (required), associationTypeId (optional)The created association.

Object reads and writes use the CRM v3 endpoints under https://api.hubapi.com/crm/v3/objects/{objectType}; properties live under /crm/v3/properties/{objectType} and owners under /crm/v3/owners. Associations use the v4 endpoints under /crm/v4/objects/{objectType}/{id}/associations/{toObjectType}.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Source: README.md at commit ca23ef1

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestNov 3, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts