@peac/mcp-server 0.14.5 → 0.15.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 +19 -19
- package/dist/cli.cjs +2 -2
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +2 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/infra/constants.d.ts +1 -1
- package/manifest.json +1 -1
- package/package.json +6 -6
- package/server.json +3 -3
- package/smithery.yaml +4 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @peac/mcp-server
|
|
2
2
|
|
|
3
|
-
MCP
|
|
3
|
+
Local MCP server for PEAC signed interaction records. It exposes tools to verify, inspect, decode, issue, and bundle PEAC records through stdio or the local Streamable HTTP transport.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ npx @peac/mcp-server
|
|
|
16
16
|
|
|
17
17
|
## What It Does
|
|
18
18
|
|
|
19
|
-
`@peac/mcp-server` exposes PEAC
|
|
19
|
+
`@peac/mcp-server` exposes PEAC signed interaction record operations as Model Context Protocol (MCP) tools that AI agents and LLM-based applications can call. It supports both stdio and Streamable HTTP transports, with static policy checks, concurrency limits, input size guards, and structured error responses with recovery hints.
|
|
20
20
|
|
|
21
21
|
## How Do I Use It?
|
|
22
22
|
|
|
@@ -72,18 +72,6 @@ npx @peac/mcp-server \
|
|
|
72
72
|
npx @peac/mcp-server --transport http --port 3000
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
### MCP tools
|
|
76
|
-
|
|
77
|
-
| Tool | Description | Availability |
|
|
78
|
-
| -------------------- | ----------------------------------------- | ---------------------------------------------------------- |
|
|
79
|
-
| `peac_verify` | Verify a receipt JWS signature and claims | Always |
|
|
80
|
-
| `peac_inspect` | Inspect receipt structure and metadata | Always |
|
|
81
|
-
| `peac_decode` | Decode a receipt JWS without verification | Always |
|
|
82
|
-
| `peac_issue` | Sign and return a new receipt JWS | Requires `--issuer-key` and `--issuer-id` |
|
|
83
|
-
| `peac_create_bundle` | Create a signed evidence bundle directory | Requires `--issuer-key`, `--issuer-id`, and `--bundle-dir` |
|
|
84
|
-
|
|
85
|
-
All tool responses include `_meta` with `serverVersion`, `policyHash`, `protocolVersion`, and `registeredTools`.
|
|
86
|
-
|
|
87
75
|
### CLI options
|
|
88
76
|
|
|
89
77
|
| Flag | Description | Default |
|
|
@@ -114,16 +102,28 @@ const result = await handleVerify({
|
|
|
114
102
|
input: { jws: 'eyJ...', public_key_base64url: '...' },
|
|
115
103
|
policy,
|
|
116
104
|
context: {
|
|
117
|
-
version: '0.
|
|
105
|
+
version: '0.15.0',
|
|
118
106
|
policyHash,
|
|
119
|
-
protocolVersion: '
|
|
107
|
+
protocolVersion: '2025-11-25',
|
|
120
108
|
},
|
|
121
109
|
});
|
|
122
110
|
```
|
|
123
111
|
|
|
112
|
+
## Available tools
|
|
113
|
+
|
|
114
|
+
| Tool | Description | Availability |
|
|
115
|
+
| -------------------- | --------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
116
|
+
| `peac_verify` | Verify a PEAC signed interaction record. | Always |
|
|
117
|
+
| `peac_inspect` | Inspect a PEAC signed interaction record without verification. | Always |
|
|
118
|
+
| `peac_decode` | Decode a PEAC receipt JWS header and payload for diagnostics. | Always |
|
|
119
|
+
| `peac_issue` | Issue a PEAC signed interaction record from provided claims. | Requires `--issuer-key` and `--issuer-id` |
|
|
120
|
+
| `peac_create_bundle` | Create a PEAC bundle from signed records and related artifacts. | Requires `--issuer-key`, `--issuer-id`, and `--bundle-dir` |
|
|
121
|
+
|
|
122
|
+
All structured tool outputs include a schema-declared `_meta` audit block with `serverVersion`, `policyHash`, `protocolVersion`, and `registeredTools`. This is separate from the top-level MCP `_meta` carrier used by `@peac/mappings-mcp` to attach PEAC receipt references.
|
|
123
|
+
|
|
124
124
|
## Integrates With
|
|
125
125
|
|
|
126
|
-
- `@peac/protocol` (Layer 3):
|
|
126
|
+
- `@peac/protocol` (Layer 3): signed-record issuance and verification
|
|
127
127
|
- `@peac/crypto` (Layer 2): JWS signing and decoding
|
|
128
128
|
- `@peac/schema` (Layer 1): Receipt schema validation
|
|
129
129
|
- `@peac/kernel` (Layer 0): Error codes and constants
|
|
@@ -131,13 +131,13 @@ const result = await handleVerify({
|
|
|
131
131
|
|
|
132
132
|
## For Agent Developers
|
|
133
133
|
|
|
134
|
-
Connect your agent to this server over stdio or HTTP to gain
|
|
134
|
+
Connect your agent to this server over stdio or HTTP to gain signed-record verification, receipt decoding, and issuance capabilities. The tools use structured outputs with error codes and `next_action` recovery hints so your agent can handle failures programmatically. Every response includes `_meta` for audit and traceability.
|
|
135
135
|
|
|
136
136
|
Read-only tools (`peac_verify`, `peac_inspect`, `peac_decode`) are available with no configuration. To enable issuance, provide an Ed25519 signing key via `--issuer-key` and `--issuer-id`.
|
|
137
137
|
|
|
138
138
|
## For Operators
|
|
139
139
|
|
|
140
|
-
The server
|
|
140
|
+
The server applies static policy checks with configurable concurrency limits, input size bounds, JWS size caps, and tool timeouts. HTTP transport binds to localhost by default with CORS deny-all. The stdout fence prevents non-JSON-RPC output from corrupting the stdio transport.
|
|
141
141
|
|
|
142
142
|
Security properties: no ambient key discovery (keys must be explicitly provided), no implicit network fetches from tool handlers, path traversal prevention on bundle output, and session isolation on HTTP transport.
|
|
143
143
|
|
package/dist/cli.cjs
CHANGED
|
@@ -49,7 +49,7 @@ var SERVER_NAME, SERVER_VERSION, MCP_PROTOCOL_VERSION;
|
|
|
49
49
|
var init_constants = __esm({
|
|
50
50
|
"src/infra/constants.ts"() {
|
|
51
51
|
SERVER_NAME = "peac-mcp-server";
|
|
52
|
-
SERVER_VERSION = "0.
|
|
52
|
+
SERVER_VERSION = "0.15.1";
|
|
53
53
|
MCP_PROTOCOL_VERSION = "2025-11-25";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
@@ -495,7 +495,7 @@ async function createHttpTransport(options) {
|
|
|
495
495
|
server.listen(port, host, () => {
|
|
496
496
|
process.stderr.write(`[${SERVER_NAME}] HTTP transport listening on http://${host}:${port}
|
|
497
497
|
`);
|
|
498
|
-
process.stderr.write(` Transport: Streamable HTTP (MCP
|
|
498
|
+
process.stderr.write(` Transport: Streamable HTTP (MCP ${MCP_PROTOCOL_VERSION})
|
|
499
499
|
`);
|
|
500
500
|
process.stderr.write(
|
|
501
501
|
` Auth: unprotected mode (no token validation); PRM discovery per RFC 9728
|