abm-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Foxley Farm Operations Ltd (abm.dev)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,153 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/abm-dev-git/abm-mcp/main/assets/abm-diamond.svg" alt="abm.dev" width="96" />
3
+ </p>
4
+
5
+ <h1 align="center">abm.dev MCP server</h1>
6
+
7
+ <p align="center">
8
+ <strong>Account-based marketing enrichment for AI agents.</strong><br/>
9
+ One endpoint. Cited, multi-source fields. Every value attributed.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/abm-mcp"><img src="https://img.shields.io/npm/v/abm-mcp?color=2563eb&label=abm-mcp" alt="npm" /></a>
14
+ <a href="https://github.com/abm-dev-git/abm-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT" /></a>
15
+ <a href="https://mcp.abm.dev/mcp"><img src="https://img.shields.io/badge/MCP-streamable--http-7c3aed" alt="MCP" /></a>
16
+ <a href="https://smithery.ai/servers/abm-dev/gtm"><img src="https://smithery.ai/badge/abm-dev/gtm" alt="Smithery" /></a>
17
+ </p>
18
+
19
+ - **Hosted server:** `https://mcp.abm.dev/mcp`
20
+ - **Homepage:** https://abm.dev
21
+ - **For agents (machine-readable):** https://abm.dev/llms.txt
22
+
23
+ ---
24
+
25
+ ## What abm.dev is
26
+
27
+ Account-based marketing for AI agents. Give it an email, a LinkedIn URL, or a company domain; get back a structured record on the person and the company they work for. Every value carries its source, a confidence score, and a last-verified timestamp. A value is cited or it is not returned. No fabricated facts.
28
+
29
+ ## What you get
30
+
31
+ - **Eighty-nine canonical fields** per record — forty-three on the person, forty-six on the company.
32
+ - **Forty signals** on every prospect.
33
+ - **Ten sources**, resolved into one response — LinkedIn, Companies House, Perplexity, Tavily, Hunter, and others.
34
+ - **Citations on every value** — `source`, `confidence` (0–1), and `freshness` (last-verified timestamp).
35
+
36
+ No per-source bills. No per-field charges. No silent fallbacks.
37
+
38
+ ---
39
+
40
+ ## Connect
41
+
42
+ ### Claude (custom connector)
43
+
44
+ 1. Open **Settings → Connectors → Custom**.
45
+ 2. Paste the server URL: `https://mcp.abm.dev/mcp`
46
+ 3. Complete the one-time sign-in when prompted.
47
+
48
+ Then ask, in plain language: *"Enrich jane@acme.com."*
49
+
50
+ ### Cursor / Claude Code / Windsurf
51
+
52
+ These agents drive the REST API directly. Paste this prompt:
53
+
54
+ > Read https://abm.dev/llms.txt. Request an API key, save it to `.env` as `ABM_API_KEY`, then run a test enrichment against `https://api.abm.dev/v1/enrichments`. Report the result with its citations.
55
+
56
+ ### Script and terminal agents
57
+
58
+ Call the REST API directly:
59
+
60
+ ```bash
61
+ curl https://api.abm.dev/v1/enrichments \
62
+ -H "x-api-key: $ABM_API_KEY" \
63
+ -H "Content-Type: application/json" \
64
+ -d '{"type":"person","input":{"email":"jane@acme.com"}}'
65
+ ```
66
+
67
+ `input` also accepts a LinkedIn URL or a company `domain`.
68
+
69
+ ---
70
+
71
+ ## Install (npx)
72
+
73
+ Prefer a local command over a remote URL? The `abm-mcp` package is a thin
74
+ bridge: `npx -y abm-mcp` launches a local STDIO MCP server that proxies to the
75
+ hosted server at `https://mcp.abm.dev/mcp`, handling the OAuth 2.1 PKCE sign-in
76
+ and token caching for you. It defines no tools of its own — it exposes whatever
77
+ the hosted server serves.
78
+
79
+ Add it to any MCP client that supports `command`/`args` (Claude Desktop,
80
+ Cursor, Windsurf, Claude Code, and others):
81
+
82
+ ```json
83
+ {
84
+ "mcpServers": {
85
+ "abm": {
86
+ "command": "npx",
87
+ "args": ["-y", "abm-mcp"]
88
+ }
89
+ }
90
+ }
91
+ ```
92
+
93
+ Generic config snippet (for clients that take a bare command):
94
+
95
+ ```json
96
+ { "command": "npx", "args": ["-y", "abm-mcp"] }
97
+ ```
98
+
99
+ On first run a browser window opens for the one-time sign-in; the token is then
100
+ cached for subsequent runs. Point the bridge at a different endpoint by setting
101
+ the `ABM_MCP_URL` environment variable.
102
+
103
+ > Either path reaches the same hosted server. Use the **custom connector**
104
+ > (remote URL) above if your client supports it directly; use **npx** for
105
+ > clients that only speak local `command`/`args`.
106
+
107
+ ---
108
+
109
+ ## Tools
110
+
111
+ The server exposes **enrichment**:
112
+
113
+ - **Enrich a person** — from an email or a LinkedIn URL. Returns the forty-three person fields plus the company they work for.
114
+ - **Enrich a company** — from a domain. Returns the forty-six company fields.
115
+
116
+ Every field comes back with its `source`, `confidence`, and `freshness`. Real-time SSE streaming for agent loops; webhooks fire when batch jobs finish.
117
+
118
+ ---
119
+
120
+ ## Pricing
121
+
122
+ Per-enrichment. No subscription. Credits never expire. All ten sources included — no add-ons.
123
+
124
+ From about `€0.29` per enrichment. Packs: `30` credits `€2.89`, `100` `€9.29`, `500` `€36.99` (best value), `2,000` `€119.99`. The playground is free. Free launch credits with code `LAUNCHCODES`.
125
+
126
+ See https://abm.dev/#pricing.
127
+
128
+ ---
129
+
130
+ ## Links
131
+
132
+ - **Homepage:** https://abm.dev
133
+ - **For agents (llms.txt):** https://abm.dev/llms.txt
134
+ - **Docs:** https://abm.dev/docs · [Getting started](https://abm.dev/docs/getting-started)
135
+ - **API reference:** https://abm.dev/api-reference · [Enrichment](https://abm.dev/api-reference/enrichment) · [Jobs](https://abm.dev/api-reference/jobs)
136
+ - **For developers:** https://abm.dev/for-developers · **For agents:** https://abm.dev/for-agents · **For marketers:** https://abm.dev/for-marketers
137
+ - **Integrations:** [Claude connector](https://abm.dev/docs/integrations/claude-connector) · [HubSpot](https://abm.dev/docs/integrations/hubspot) · [Notion](https://abm.dev/docs/integrations/notion) · [Slack](https://abm.dev/docs/integrations/slack)
138
+ - **Concepts:** [Enrichment](https://abm.dev/docs/concepts/enrichment) · [Confidence scores](https://abm.dev/docs/concepts/confidence-scores) · [Data sources](https://abm.dev/docs/concepts/data-sources) · [Canonical fields](https://abm.dev/docs/concepts/canonical-fields)
139
+ - **Sign up:** https://abm.dev/sign-up · **Free playground:** https://abm.dev/dashboard/playground
140
+
141
+ ---
142
+
143
+ ## Registry reference
144
+
145
+ This repo is the public description of a hosted MCP server. The server runs at `https://mcp.abm.dev/mcp`; this repo is not its source. See [`server.json`](./server.json) for the machine-readable manifest.
146
+
147
+ ## Support
148
+
149
+ Questions or a stuck enrichment? Open a ticket: https://abm.dev
150
+
151
+ ## Operator
152
+
153
+ Foxley Farm Operations Ltd · UK Company No. `16392009` · Oakham, United Kingdom. GDPR-compliant.
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ // abm-mcp — thin local STDIO bridge to the hosted abm.dev MCP server.
3
+ //
4
+ // Launches the community `mcp-remote` proxy pointed at abm.dev's hosted MCP
5
+ // endpoint. It does NOT define any tools, fields, or schemas: whatever the
6
+ // remote serves is exactly what this exposes. Shipping a new server-side
7
+ // version needs zero change here.
8
+ //
9
+ // Endpoint: defaults to https://mcp.abm.dev/mcp, overridable via ABM_MCP_URL.
10
+
11
+ import { spawn } from "node:child_process";
12
+ import { createRequire } from "node:module";
13
+
14
+ const ENDPOINT = process.env.ABM_MCP_URL || "https://mcp.abm.dev/mcp";
15
+
16
+ // Resolve the bundled mcp-remote proxy entry from its own package manifest,
17
+ // so we run exactly the version pinned in our dependencies.
18
+ const require = createRequire(import.meta.url);
19
+ const proxyEntry = require.resolve("mcp-remote/dist/proxy.js");
20
+
21
+ // Forward the endpoint plus any extra CLI args the caller passed through.
22
+ const passthrough = process.argv.slice(2);
23
+ const args = [proxyEntry, ENDPOINT, ...passthrough];
24
+
25
+ const child = spawn(process.execPath, args, { stdio: "inherit" });
26
+
27
+ // Relay termination signals so the bridge shuts down cleanly with its parent.
28
+ for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) {
29
+ process.on(signal, () => child.kill(signal));
30
+ }
31
+
32
+ child.on("error", (err) => {
33
+ process.stderr.write(`abm-mcp: failed to start bridge: ${err.message}\n`);
34
+ process.exit(1);
35
+ });
36
+
37
+ child.on("exit", (code, signal) => {
38
+ if (signal) {
39
+ process.kill(process.pid, signal);
40
+ return;
41
+ }
42
+ process.exit(code ?? 0);
43
+ });
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "abm-mcp",
3
+ "version": "0.1.0",
4
+ "mcpName": "io.github.abm-dev-git/abm-mcp",
5
+ "description": "Thin local bridge to the hosted abm.dev MCP server — B2B enrichment for AI agents. Proxies stdio to https://mcp.abm.dev/mcp with OAuth 2.1 PKCE.",
6
+ "type": "module",
7
+ "bin": {
8
+ "abm-mcp": "bin/abm-mcp.mjs"
9
+ },
10
+ "files": [
11
+ "bin",
12
+ "README.md",
13
+ "server.json",
14
+ "LICENSE"
15
+ ],
16
+ "engines": {
17
+ "node": ">=18"
18
+ },
19
+ "dependencies": {
20
+ "mcp-remote": "0.1.38"
21
+ },
22
+ "keywords": [
23
+ "mcp",
24
+ "enrichment",
25
+ "abm",
26
+ "b2b-data",
27
+ "ai-agents"
28
+ ],
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/abm-dev-git/abm-mcp.git"
32
+ },
33
+ "homepage": "https://abm.dev",
34
+ "bugs": {
35
+ "url": "https://abm.dev"
36
+ },
37
+ "author": "Foxley Farm Operations Ltd (abm.dev)",
38
+ "license": "MIT"
39
+ }
package/server.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
3
+ "name": "io.github.abm-dev-git/abm-mcp",
4
+ "description": "Account-based marketing for AI agents. A great rep once knew every account. Now your agents do.",
5
+ "version": "1.0.0",
6
+ "websiteUrl": "https://abm.dev",
7
+ "repository": {
8
+ "url": "https://github.com/abm-dev-git/abm-mcp",
9
+ "source": "github"
10
+ },
11
+ "remotes": [
12
+ {
13
+ "type": "streamable-http",
14
+ "url": "https://mcp.abm.dev/mcp"
15
+ }
16
+ ]
17
+ }