mcp-layer 0.1.0 → 0.1.1
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 +13 -0
- package/package.json +11 -9
- package/src/generate.js +6 -18
- package/src/index.js +12 -0
package/README.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
`mcp-layer` helps engineers bolt extra behaviors on top of existing MCP servers without reimplementing transport or schema parsing. It is a small, focused toolbox for discovering MCP configs, connecting to servers, and extracting a unified schema that can drive CLIs, REST APIs, UI renderers, or additional MCP layers.
|
|
4
4
|
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [What you can build with this repo](#what-you-can-build-with-this-repo)
|
|
8
|
+
- [Packages](#packages)
|
|
9
|
+
- [CLI quick try](#cli-quick-try)
|
|
10
|
+
- [Quick start (end-to-end)](#quick-start-end-to-end)
|
|
11
|
+
- [Design principles](#design-principles)
|
|
12
|
+
- [Development](#development)
|
|
13
|
+
- [Releasing](#releasing)
|
|
14
|
+
- [Repository guidelines](#repository-guidelines)
|
|
15
|
+
|
|
5
16
|
## What you can build with this repo
|
|
6
17
|
|
|
7
18
|
- **CLI layers** that expose MCP tools as commands with validated input.
|
|
@@ -98,6 +109,8 @@ The root package runs `prepack` to regenerate `src/index.js` and sync root `pack
|
|
|
98
109
|
|
|
99
110
|
See `.github/workflows/release.yml` for the pipeline details.
|
|
100
111
|
|
|
112
|
+
The publish guard at `.github/workflows/publish-guard.yml` runs after the `Release` workflow completes and locates the open `Version Packages` PR (`changeset-release/main`). It checks npm for workspace package existence and upserts a single PR comment when packages still need first-time bootstrap publishing.
|
|
113
|
+
|
|
101
114
|
## Repository guidelines
|
|
102
115
|
|
|
103
116
|
See `AGENTS.md` for coding style, testing requirements, and documentation expectations.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-layer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Layers of functionality that can be add to any MCP server. ",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,15 +29,17 @@
|
|
|
29
29
|
"@changesets/cli": "^2.29.2"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@mcp-layer/attach": "1.1.
|
|
33
|
-
"@mcp-layer/cli": "1.1.
|
|
34
|
-
"@mcp-layer/config": "1.0.
|
|
35
|
-
"@mcp-layer/connect": "1.0.
|
|
36
|
-
"@mcp-layer/
|
|
37
|
-
"@mcp-layer/
|
|
38
|
-
"@mcp-layer/
|
|
32
|
+
"@mcp-layer/attach": "1.1.1",
|
|
33
|
+
"@mcp-layer/cli": "1.1.1",
|
|
34
|
+
"@mcp-layer/config": "1.0.1",
|
|
35
|
+
"@mcp-layer/connect": "1.0.1",
|
|
36
|
+
"@mcp-layer/error": "0.2.0",
|
|
37
|
+
"@mcp-layer/manager": "0.2.0",
|
|
38
|
+
"@mcp-layer/openapi": "1.1.1",
|
|
39
|
+
"@mcp-layer/rest": "1.2.0",
|
|
40
|
+
"@mcp-layer/schema": "1.0.2",
|
|
39
41
|
"@mcp-layer/session": "1.0.0",
|
|
40
|
-
"@mcp-layer/test-server": "1.0.
|
|
42
|
+
"@mcp-layer/test-server": "1.0.1"
|
|
41
43
|
},
|
|
42
44
|
"main": "./src/index.js",
|
|
43
45
|
"files": [
|
package/src/generate.js
CHANGED
|
@@ -24,16 +24,12 @@ export async function collectPackages(rootDir) {
|
|
|
24
24
|
const packages = [];
|
|
25
25
|
|
|
26
26
|
for (const entry of entries) {
|
|
27
|
-
if (!entry.isDirectory())
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
27
|
+
if (!entry.isDirectory()) continue;
|
|
30
28
|
|
|
31
29
|
const pkgPath = path.join(packagesDir, entry.name, 'package.json');
|
|
32
30
|
const exists = await hasPackageJson(pkgPath);
|
|
33
31
|
|
|
34
|
-
if (exists)
|
|
35
|
-
packages.push(entry.name);
|
|
36
|
-
}
|
|
32
|
+
if (exists) packages.push(entry.name);
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
packages.sort();
|
|
@@ -121,9 +117,7 @@ export async function syncDependencies(rootDir) {
|
|
|
121
117
|
}
|
|
122
118
|
|
|
123
119
|
for (const key of Object.keys(deps)) {
|
|
124
|
-
if (key.startsWith('@mcp-layer/') && !names.has(key))
|
|
125
|
-
delete deps[key];
|
|
126
|
-
}
|
|
120
|
+
if (key.startsWith('@mcp-layer/') && !names.has(key)) delete deps[key];
|
|
127
121
|
}
|
|
128
122
|
|
|
129
123
|
data.dependencies = sortObject(deps);
|
|
@@ -140,9 +134,7 @@ export async function writeIndex(rootDir, outFile) {
|
|
|
140
134
|
const next = await buildIndex(rootDir);
|
|
141
135
|
const current = await readMaybe(outFile);
|
|
142
136
|
|
|
143
|
-
if (current === next)
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
137
|
+
if (current === next) return;
|
|
146
138
|
|
|
147
139
|
await writeFile(outFile, next, 'utf8');
|
|
148
140
|
}
|
|
@@ -180,9 +172,7 @@ export async function writeJson(filePath, data) {
|
|
|
180
172
|
const next = `${JSON.stringify(data, null, 2)}\n`;
|
|
181
173
|
const current = await readMaybe(filePath);
|
|
182
174
|
|
|
183
|
-
if (current === next)
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
175
|
+
if (current === next) return;
|
|
186
176
|
|
|
187
177
|
await writeFile(filePath, next, 'utf8');
|
|
188
178
|
}
|
|
@@ -216,6 +206,4 @@ export async function run() {
|
|
|
216
206
|
}
|
|
217
207
|
|
|
218
208
|
const entry = fileURLToPath(import.meta.url);
|
|
219
|
-
if (process.argv[1] === entry)
|
|
220
|
-
run();
|
|
221
|
-
}
|
|
209
|
+
if (process.argv[1] === entry) run();
|
package/src/index.js
CHANGED
|
@@ -28,6 +28,18 @@ export * as config from '@mcp-layer/config';
|
|
|
28
28
|
*/
|
|
29
29
|
export * as connect from '@mcp-layer/connect';
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Package namespace from `@mcp-layer/error`.
|
|
33
|
+
* @type {typeof import('@mcp-layer/error')}
|
|
34
|
+
*/
|
|
35
|
+
export * as error from '@mcp-layer/error';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Package namespace from `@mcp-layer/manager`.
|
|
39
|
+
* @type {typeof import('@mcp-layer/manager')}
|
|
40
|
+
*/
|
|
41
|
+
export * as manager from '@mcp-layer/manager';
|
|
42
|
+
|
|
31
43
|
/**
|
|
32
44
|
* Package namespace from `@mcp-layer/openapi`.
|
|
33
45
|
* @type {typeof import('@mcp-layer/openapi')}
|