@contracko/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/README.md ADDED
@@ -0,0 +1,26 @@
1
+ # `@contracko/mcp`
2
+
3
+ Thin npx launcher for the Contracko MCP server. Local stdio clients (Goose and similar) spawn this package; it proxies to the hosted Streamable HTTP endpoint with OAuth.
4
+
5
+ This is not a second MCP server. Skills install stays `npx skills add https://contracko.com`.
6
+
7
+ ## Run
8
+
9
+ ```bash
10
+ npx -y @contracko/mcp
11
+ ```
12
+
13
+ Goose / stdio config:
14
+
15
+ ```json
16
+ {
17
+ "mcpServers": {
18
+ "contracko": {
19
+ "command": "npx",
20
+ "args": ["-y", "@contracko/mcp"]
21
+ }
22
+ }
23
+ }
24
+ ```
25
+
26
+ The process connects to `https://app.contracko.com/mcp`. Setup steps for clients that speak HTTP directly: [contracko.com/mcp](https://contracko.com/mcp).
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'node:child_process'
3
+ import { createRequire } from 'node:module'
4
+ import path from 'node:path'
5
+
6
+ /** Canonical hosted MCP endpoint. Keep in sync with server.json remotes. */
7
+ export const MCP_URL = 'https://app.contracko.com/mcp'
8
+
9
+ const require = createRequire(import.meta.url)
10
+ const remoteRoot = path.dirname(require.resolve('mcp-remote/package.json'))
11
+ const proxy = path.join(remoteRoot, 'dist', 'proxy.js')
12
+
13
+ export function buildProxyArgv(extraArgs = process.argv.slice(2)) {
14
+ return [proxy, MCP_URL, ...extraArgs]
15
+ }
16
+
17
+ // Always start. npm/npx invoke this file through a symlink, so comparing
18
+ // process.argv[1] to import.meta.url without realpath would no-op.
19
+ const child = spawn(process.execPath, buildProxyArgv(), { stdio: 'inherit' })
20
+
21
+ for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
22
+ process.on(signal, () => {
23
+ child.kill(signal)
24
+ })
25
+ }
26
+
27
+ child.on('exit', (code, signal) => {
28
+ if (signal) {
29
+ process.kill(process.pid, signal)
30
+ return
31
+ }
32
+ process.exit(code ?? 1)
33
+ })
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@contracko/mcp",
3
+ "version": "0.1.0",
4
+ "mcpName": "com.contracko/contracko",
5
+ "description": "npx launcher for the Contracko MCP server (stdio to Streamable HTTP).",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "contracko-mcp": "bin/contracko-mcp.js"
10
+ },
11
+ "files": [
12
+ "bin",
13
+ "README.md"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/contracko/contracko-skills.git",
18
+ "directory": "packages/mcp"
19
+ },
20
+ "homepage": "https://contracko.com/mcp",
21
+ "bugs": {
22
+ "url": "https://github.com/contracko/contracko-skills/issues"
23
+ },
24
+ "keywords": [
25
+ "mcp",
26
+ "contracko",
27
+ "modelcontextprotocol"
28
+ ],
29
+ "engines": {
30
+ "node": ">=20.18.1"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "registry": "https://registry.npmjs.org"
35
+ },
36
+ "dependencies": {
37
+ "mcp-remote": "^0.8.6"
38
+ }
39
+ }