@adrata/starfield-mcp 1.0.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/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # @adrata/starfield-mcp
2
+
3
+ Give a coding agent your Starfield board.
4
+
5
+ Starfield is the work board in Adrata — boards, cards, tags, roll-ups, and the
6
+ governed writes that move them. This package lets Claude Code, Codex, Cursor,
7
+ Windsurf, or any other MCP client read that board and change it through exactly
8
+ the same endpoints the app uses, so workspace scoping, validation, and the
9
+ transactional move all hold whether a human dragged the card or an agent did.
10
+
11
+ ## Install
12
+
13
+ You don't. Point your agent's config at it and the client installs it on
14
+ launch.
15
+
16
+ **Claude Code**
17
+
18
+ ```bash
19
+ claude mcp add starfield --scope user -- npx -y @adrata/starfield-mcp
20
+ ```
21
+
22
+ **Codex** — `codex mcp add` writes the global file, `~/.codex/config.toml`;
23
+ there is no project-scope flag.
24
+
25
+ ```bash
26
+ codex mcp add starfield -- npx -y @adrata/starfield-mcp
27
+ ```
28
+
29
+ For a project-scoped setup, edit the file yourself — `.mcp.json` for Claude
30
+ Code, `.codex/config.toml` for Codex. Codex ignores project config in a
31
+ directory you have not trusted, and says nothing when it does.
32
+
33
+ ## Then, inside the agent
34
+
35
+ ```
36
+ connect_workspace # signs you in through the browser; read-only by default
37
+ workspace_status # names the credential in play and the tier it grants
38
+ ```
39
+
40
+ `connect_workspace` runs a real OAuth 2.1 + PKCE flow against a loopback
41
+ callback and stores a refreshable, revocable token on your machine. Ask for
42
+ `connect_workspace` with `writeAccess: true` when the agent needs to move cards.
43
+ Nothing outside your machine can tell you whether the config landed —
44
+ `workspace_status` is the confirmation.
45
+
46
+ ## What this actually is
47
+
48
+ The same server as [`@adrata/adrata-mcp`](https://www.npmjs.com/package/@adrata/adrata-mcp),
49
+ under the name people wiring an agent to a board are looking for. It is a
50
+ dependency, not a copy: this package's entire implementation is six lines that
51
+ default `ADRATA_MCP_SERVER_NAME` to `Starfield` — so your client's server list
52
+ says Starfield — and then import the real thing. Every tool, every tier, and
53
+ every governed-write contract is identical, and there is no second codebase to
54
+ drift.
55
+
56
+ Install either name; they are the same server.
57
+
58
+ ## Environment
59
+
60
+ | Variable | Meaning |
61
+ |---|---|
62
+ | `ADRATA_API_URL` | API base URL (default `https://api.adrata.com`) |
63
+ | `ADRATA_API_KEY` | Pro-tier API key |
64
+ | `ADRATA_OAUTH_TOKEN` | Enterprise OAuth token (or use `connect_workspace`) |
65
+ | `ADRATA_MCP_SERVER_NAME` | Display name in `serverInfo` (default `Starfield` here) |
66
+
67
+ Full documentation, including the tier model and the complete tool list, lives
68
+ in the [`@adrata/adrata-mcp` README](https://www.npmjs.com/package/@adrata/adrata-mcp).
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @adrata/starfield-mcp — Starfield under its own name.
5
+ *
6
+ * This is not a second MCP server. It is the same server, `@adrata/adrata-mcp`,
7
+ * reached by the name the person installing it actually has in mind.
8
+ *
9
+ * The reasoning, since a wrapper this thin invites deletion:
10
+ *
11
+ * A developer wiring a coding agent to their build board is thinking about
12
+ * Starfield. They may never encounter the company name, and shouldn't have to
13
+ * type it to install a board client. The precedent is unanimous — `@angular/core`
14
+ * is Google's, `next` is Vercel's, `react` is Meta's; when a product is what
15
+ * people know, the product name wins. The `@adrata` scope stays because this
16
+ * server holds workspace credentials and reaches both the CRM and the board,
17
+ * and a scope is a provenance signal an unscoped name has none of.
18
+ *
19
+ * What it must NOT be is a fork. Two copies of a 116kB server that drift is a
20
+ * far worse outcome than an odd-looking six-line file, so `@adrata/adrata-mcp`
21
+ * is an ordinary runtime dependency and this file adds exactly one thing: the
22
+ * display name.
23
+ *
24
+ * It imports rather than spawns. A child process would double the startup, add
25
+ * a second thing to keep alive, and put a signal- and exit-code-forwarding
26
+ * problem between a client and its stdio transport — all to accomplish what
27
+ * setting one variable before an import does for free. The server reads its
28
+ * configuration from `process.env` when it is evaluated, so assigning first and
29
+ * importing second is sufficient, and dynamic import is what makes the order
30
+ * real (a static `import` is hoisted and would run before this line).
31
+ *
32
+ * The default is a default, not an override: an explicit ADRATA_MCP_SERVER_NAME
33
+ * wins, so anyone running this under a white-labelled name still gets it.
34
+ */
35
+
36
+ if (!process.env.ADRATA_MCP_SERVER_NAME?.trim()) {
37
+ process.env.ADRATA_MCP_SERVER_NAME = 'Starfield';
38
+ }
39
+
40
+ await import('@adrata/adrata-mcp');
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@adrata/starfield-mcp",
3
+ "version": "1.0.0",
4
+ "description": "Starfield MCP server — give Claude Code, Codex, Cursor, and other coding agents your Starfield board. Read boards and cards, create and move work, and run governed writes from the terminal.",
5
+ "type": "module",
6
+ "main": "./bin/starfield-mcp.js",
7
+ "bin": {
8
+ "starfield-mcp": "./bin/starfield-mcp.js"
9
+ },
10
+ "scripts": {
11
+ "start": "node ./bin/starfield-mcp.js"
12
+ },
13
+ "keywords": [
14
+ "mcp",
15
+ "starfield",
16
+ "adrata",
17
+ "model-context-protocol",
18
+ "claude-code",
19
+ "codex",
20
+ "cursor",
21
+ "windsurf",
22
+ "kanban",
23
+ "board",
24
+ "issue-tracker",
25
+ "agents"
26
+ ],
27
+ "license": "UNLICENSED",
28
+ "private": false,
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/adrata/adrata",
35
+ "directory": "code/starfield-mcp"
36
+ },
37
+ "homepage": "https://adrata.com",
38
+ "engines": {
39
+ "node": ">=18.0.0"
40
+ },
41
+ "files": [
42
+ "bin/",
43
+ "README.md"
44
+ ],
45
+ "dependencies": {
46
+ "@adrata/adrata-mcp": "^1.0.0"
47
+ }
48
+ }