@weave_protocol/mund 0.1.5 → 0.1.7

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.
@@ -0,0 +1 @@
1
+ ghu_wNyHeK04LwpkkeMZHtUHzBrRFUU6k80WOTOj
@@ -0,0 +1 @@
1
+ {"token":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtY3AtcmVnaXN0cnkiLCJleHAiOjE3NzE0NTM3MzgsIm5iZiI6MTc3MTQ1MzQzOCwiaWF0IjoxNzcxNDUzNDM4LCJhdXRoX21ldGhvZCI6ImdpdGh1Yi1hdCIsImF1dGhfbWV0aG9kX3N1YiI6IlR5b3gtYWxsIiwicGVybWlzc2lvbnMiOlt7ImFjdGlvbiI6InB1Ymxpc2giLCJyZXNvdXJjZSI6ImlvLmdpdGh1Yi5UeW94LWFsbC8qIn1dfQ.qZJh92M9l0TiI6OabJraIbFm0c4iMox6T0LeyOf2-IQsv0AqJreJ33or0GAL5hi9R0VtXc2j6SHvA1BMVz17Dg","expires_at":1771453738}
package/LICENSE CHANGED
@@ -1,3 +1,11 @@
1
+ The MCP project is undergoing a licensing transition from the MIT License to the Apache License, Version 2.0 ("Apache-2.0"). All new code and specification contributions to the project are licensed under Apache-2.0. Documentation contributions (excluding specifications) are licensed under CC-BY-4.0.
2
+
3
+ Contributions for which relicensing consent has been obtained are licensed under Apache-2.0. Contributions made by authors who originally licensed their work under the MIT License and who have not yet granted explicit permission to relicense remain licensed under the MIT License.
4
+
5
+ No rights beyond those granted by the applicable original license are conveyed for such contributions.
6
+
7
+ ---
8
+
1
9
  Apache License
2
10
  Version 2.0, January 2004
3
11
  http://www.apache.org/licenses/
@@ -48,9 +56,9 @@
48
56
  "Contribution" shall mean any work of authorship, including
49
57
  the original version of the Work and any modifications or additions
50
58
  to that Work or Derivative Works thereof, that is intentionally
51
- submitted to the Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
59
+ submitted to the Licensor for inclusion in the Work by the copyright
60
+ owner or by an individual or Legal Entity authorized to submit on behalf
61
+ of the copyright owner. For the purposes of this definition, "submitted"
54
62
  means any form of electronic, verbal, or written communication sent
55
63
  to the Licensor or its representatives, including but not limited to
56
64
  communication on electronic mailing lists, source code control systems,
@@ -175,27 +183,34 @@
175
183
 
176
184
  END OF TERMS AND CONDITIONS
177
185
 
178
- APPENDIX: How to apply the Apache License to your work.
186
+ ---
187
+
188
+ MIT License
189
+
190
+ Copyright (c) 2024-2025 Model Context Protocol a Series of LF Projects, LLC.
191
+
192
+ Permission is hereby granted, free of charge, to any person obtaining a copy
193
+ of this software and associated documentation files (the "Software"), to deal
194
+ in the Software without restriction, including without limitation the rights
195
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
196
+ copies of the Software, and to permit persons to whom the Software is
197
+ furnished to do so, subject to the following conditions:
179
198
 
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
199
+ The above copyright notice and this permission notice shall be included in all
200
+ copies or substantial portions of the Software.
188
201
 
189
- Copyright 2025 Weave Protocol
202
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
203
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
204
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
205
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
206
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
207
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
208
+ SOFTWARE.
190
209
 
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
210
+ ---
194
211
 
195
- http://www.apache.org/licenses/LICENSE-2.0
212
+ Creative Commons Attribution 4.0 International (CC-BY-4.0)
196
213
 
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
214
+ Documentation in this project (excluding specifications) is licensed under
215
+ CC-BY-4.0. See https://creativecommons.org/licenses/by/4.0/legalcode for
216
+ the full license text.
package/README.md CHANGED
@@ -1,135 +1,153 @@
1
- # Mund - The Guardian Protocol
1
+ # MCP Registry
2
2
 
3
- **Pattern Detection & Threat Scanning for AI Agents**
3
+ The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
4
4
 
5
- Part of the [Weave Protocol Security Suite](https://github.com/Tyox-all/Weave_Protocol) (Mund + Hord + Dōmere)
5
+ [**📤 Publish my MCP server**](docs/modelcontextprotocol-io/quickstart.mdx) | [**⚡️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**👀 Ecosystem vision**](docs/design/ecosystem-vision.md) | 📖 **[Full documentation](./docs)**
6
6
 
7
- ## What It Does
7
+ ## Development Status
8
8
 
9
- Mund scans AI agent inputs and outputs for security threats before they cause harm:
9
+ **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** 🎉. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patience—your involvement has been key to getting us here!
10
10
 
11
- - **Secret Detection** - API keys, tokens, passwords, certificates
12
- - **PII Detection** - SSN, credit cards, emails, phone numbers
13
- - **Injection Detection** - Prompt injection, jailbreak attempts
14
- - **Exfiltration Detection** - Data leakage patterns, encoding tricks
15
- - **Code Analysis** - Dangerous patterns, eval(), exec(), SQL injection
11
+ **2025-09-08 update**: The registry has launched in preview 🎉 ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
16
12
 
17
- ## Installation
13
+ Current key maintainers:
14
+ - **Adam Jones** (Anthropic) [@domdomegg](https://github.com/domdomegg)
15
+ - **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
16
+ - **Toby Padilla** (GitHub) [@toby](https://github.com/toby)
17
+ - **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov)
18
+
19
+ ## Contributing
20
+
21
+ We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
22
+
23
+ Often (but not always) ideas flow through this pipeline:
24
+
25
+ - **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
26
+ - **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
27
+ - **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
28
+ - **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
29
+
30
+ ### Quick start:
31
+
32
+ #### Pre-requisites
33
+
34
+ - **Docker**
35
+ - **Go 1.24.x**
36
+ - **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
37
+ - **golangci-lint v2.4.0**
38
+
39
+ #### Running the server
18
40
 
19
41
  ```bash
20
- npm install @weave_protocol/mund
42
+ # Start full development environment
43
+ make dev-compose
21
44
  ```
22
45
 
23
- ## Quick Start
46
+ This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
24
47
 
25
- ```typescript
26
- import { SecretScanner, PIIDetector, InjectionDetector } from '@weave_protocol/mund';
48
+ **Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
27
49
 
28
- // Scan for secrets
29
- const secretScanner = new SecretScanner();
30
- const secretResults = secretScanner.analyze('My API key is sk-1234567890abcdef');
31
- // Returns: [{ type: 'secret', severity: 'critical', pattern: 'openai_api_key', ... }]
50
+ By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
32
51
 
33
- // Detect PII
34
- const piiDetector = new PIIDetector();
35
- const piiResults = piiDetector.analyze('Contact John at john@example.com or 555-123-4567');
36
- // Returns: [{ type: 'pii', matches: ['email', 'phone'], ... }]
52
+ The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
37
53
 
38
- // Check for injection
39
- const injectionDetector = new InjectionDetector();
40
- const injectionResults = injectionDetector.analyze('Ignore previous instructions and...');
41
- // Returns: [{ type: 'injection', severity: 'high', ... }]
54
+ <details>
55
+ <summary>Alternative: Running a pre-built Docker image</summary>
56
+
57
+ Pre-built Docker images are automatically published to GitHub Container Registry:
58
+
59
+ ```bash
60
+ # Run latest stable release
61
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
62
+
63
+ # Run latest from main branch (continuous deployment)
64
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
65
+
66
+ # Run specific release version
67
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
68
+
69
+ # Run development build from main branch
70
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
42
71
  ```
43
72
 
44
- ## MCP Tools
73
+ **Available tags:**
74
+ - **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
75
+ - **Continuous**: `main` (latest main branch build)
76
+ - **Development**: `main-<date>-<sha>` (specific commit builds)
77
+
78
+ </details>
45
79
 
46
- Run as MCP server for Claude Desktop:
80
+ #### Publishing a server
47
81
 
48
- ```json
49
- {
50
- "mcpServers": {
51
- "mund": {
52
- "command": "npx",
53
- "args": ["@weave_protocol/mund"]
54
- }
55
- }
56
- }
82
+ To publish a server, we've built a simple CLI. You can use it with:
83
+
84
+ ```bash
85
+ # Build the latest CLI
86
+ make publisher
87
+
88
+ # Use it!
89
+ ./bin/mcp-publisher --help
90
+ ```
91
+
92
+ See [the publisher guide](./docs/modelcontextprotocol-io/quickstart.mdx) for more details.
93
+
94
+ #### Other commands
95
+
96
+ ```bash
97
+ # Run lint, unit tests and integration tests
98
+ make check
57
99
  ```
58
100
 
59
- ### Available Tools
60
-
61
- | Tool | Description |
62
- |------|-------------|
63
- | `mund_scan_content` | Full security scan on content |
64
- | `mund_scan_secrets` | Scan for secrets and credentials |
65
- | `mund_scan_pii` | Scan for personally identifiable information |
66
- | `mund_scan_injection` | Detect prompt injection attempts |
67
- | `mund_scan_exfiltration` | Detect data exfiltration patterns |
68
- | `mund_analyze_code` | Analyze code for security issues |
69
- | `mund_get_rules` | Get current detection rules |
70
- | `mund_add_rule` | Add custom detection rule |
71
- | `mund_enable_rule` | Enable a detection rule |
72
- | `mund_disable_rule` | Disable a detection rule |
73
- | `mund_get_stats` | Get scanning statistics |
74
-
75
- ## Detection Patterns
76
-
77
- ### Secrets (30+ patterns)
78
- - AWS keys, Azure keys, GCP credentials
79
- - OpenAI, Anthropic, Cohere API keys
80
- - GitHub, GitLab, Bitbucket tokens
81
- - Stripe, Twilio, SendGrid keys
82
- - JWT tokens, private keys, certificates
83
-
84
- ### PII Patterns
85
- - Social Security Numbers
86
- - Credit card numbers (with Luhn validation)
87
- - Email addresses, phone numbers
88
- - Physical addresses, dates of birth
89
-
90
- ### Injection Patterns
91
- - "Ignore previous instructions"
92
- - "You are now DAN"
93
- - Role manipulation attempts
94
- - Base64/hex encoded instructions
95
- - Unicode obfuscation
96
-
97
- ## Integration with Hord & Dōmere
98
-
99
- ```typescript
100
- // Full Weave Protocol security flow
101
- import { SecretScanner } from '@weave_protocol/mund';
102
- import { VaultManager } from '@weave_protocol/hord';
103
- import { ThreadManager } from '@weave_protocol/domere';
104
-
105
- // 1. Scan input with Mund
106
- const scanner = new SecretScanner();
107
- const threats = scanner.analyze(userInput);
108
-
109
- if (threats.length > 0) {
110
- // 2. Contain with Hord
111
- const vault = new VaultManager();
112
- await vault.quarantine(threats);
113
- }
114
-
115
- // 3. Track with Dōmere
116
- const thread = new ThreadManager();
117
- await thread.addHop({
118
- security_scan: threats,
119
- // ...
120
- });
101
+ There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
102
+
103
+ <!--
104
+ For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
+ -->
106
+
107
+ ## Architecture
108
+
109
+ ### Project Structure
110
+
111
+ ```
112
+ ├── cmd/ # Application entry points
113
+ │ └── publisher/ # Server publishing tool
114
+ ├── data/ # Seed data
115
+ ├── deploy/ # Deployment configuration (Pulumi)
116
+ ├── docs/ # Documentation
117
+ ├── internal/ # Private application code
118
+ │ ├── api/ # HTTP handlers and routing
119
+ │ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
120
+ │ ├── config/ # Configuration management
121
+ │ ├── database/ # Data persistence (PostgreSQL)
122
+ │ ├── service/ # Business logic
123
+ │ ├── telemetry/ # Metrics and monitoring
124
+ │ └── validators/ # Input validation
125
+ ├── pkg/ # Public packages
126
+ │ ├── api/ # API types and structures
127
+ │ │ └── v0/ # Version 0 API types
128
+ │ └── model/ # Data models for server.json
129
+ ├── scripts/ # Development and testing scripts
130
+ ├── tests/ # Integration tests
131
+ └── tools/ # CLI tools and utilities
132
+ └── validate-*.sh # Schema validation tools
121
133
  ```
122
134
 
123
- ## License
135
+ ### Authentication
136
+
137
+ Publishing supports multiple authentication methods:
138
+ - **GitHub OAuth** - For publishing by logging into GitHub
139
+ - **GitHub OIDC** - For publishing from GitHub Actions
140
+ - **DNS verification** - For proving ownership of a domain and its subdomains
141
+ - **HTTP verification** - For proving ownership of a domain
124
142
 
125
- Apache-2.0
143
+ The registry validates namespace ownership when publishing. E.g. to publish...:
144
+ - `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
145
+ - `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
126
146
 
127
- ## Links
147
+ ## Community Projects
128
148
 
129
- - [GitHub](https://github.com/Tyox-all/Weave_Protocol)
130
- - [Hord (Vault Protocol)](https://www.npmjs.com/package/@weave_protocol/hord)
131
- - [Dōmere (Judge Protocol)](https://www.npmjs.com/package/@weave_protocol/domere)
149
+ Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
132
150
 
133
- ---
151
+ ## More documentation
134
152
 
135
- Made with ❤️ for AI Safety
153
+ See the [documentation](./docs) for more details if your question has not been answered here!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weave_protocol/mund",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "The Guardian Protocol - MCP-based security monitoring for agentic AI systems",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -38,13 +38,13 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.0.0",
41
- "express": "^4.21.0",
42
- "zod": "^3.23.8",
43
- "yaml": "^2.5.0",
44
41
  "better-sqlite3": "^11.3.0",
42
+ "express": "^4.21.0",
45
43
  "nodemailer": "^6.9.15",
44
+ "uuid": "^10.0.0",
46
45
  "winston": "^3.14.2",
47
- "uuid": "^10.0.0"
46
+ "yaml": "^2.5.0",
47
+ "zod": "^3.23.8"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/better-sqlite3": "^7.6.11",
@@ -52,11 +52,12 @@
52
52
  "@types/node": "^22.5.5",
53
53
  "@types/nodemailer": "^6.4.16",
54
54
  "@types/uuid": "^10.0.0",
55
- "tsx": "^4.19.1",
56
- "typescript": "^5.6.2",
57
- "vitest": "^2.1.1",
58
55
  "@typescript-eslint/eslint-plugin": "^8.6.0",
59
56
  "@typescript-eslint/parser": "^8.6.0",
60
- "eslint": "^9.10.0"
61
- }
57
+ "eslint": "^9.10.0",
58
+ "tsx": "^4.19.1",
59
+ "typescript": "^5.6.2",
60
+ "vitest": "^2.1.1"
61
+ },
62
+ "mcpName": "io.github.Tyox-all/mund"
62
63
  }
package/server.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.Tyox-all/mund",
4
+ "description": "AI security scanner - secrets, PII, prompt injection, and exfiltration detection.",
5
+ "repository": {
6
+ "url": "https://github.com/Tyox-all/Weave_Protocol",
7
+ "source": "github"
8
+ },
9
+ "version": "0.1.6",
10
+ "packages": [
11
+ {
12
+ "registryType": "npm",
13
+ "identifier": "@weave_protocol/mund",
14
+ "version": "0.1.6",
15
+ "transport": {
16
+ "type": "stdio"
17
+ },
18
+ "environmentVariables": [
19
+ {
20
+ "name": "MUND_SEVERITY_THRESHOLD",
21
+ "description": "Minimum severity level to report (low, medium, high, critical)",
22
+ "isRequired": false,
23
+ "format": "string"
24
+ },
25
+ {
26
+ "name": "MUND_LOG_LEVEL",
27
+ "description": "Logging verbosity (debug, info, warn, error)",
28
+ "isRequired": false,
29
+ "format": "string"
30
+ }
31
+ ]
32
+ }
33
+ ],
34
+ "tools": [
35
+ {
36
+ "name": "mund_scan_content",
37
+ "description": "Full security scan on content for secrets, PII, injection, and exfiltration"
38
+ },
39
+ {
40
+ "name": "mund_scan_secrets",
41
+ "description": "Scan for API keys, tokens, passwords, and credentials (30+ patterns)"
42
+ },
43
+ {
44
+ "name": "mund_scan_pii",
45
+ "description": "Detect personally identifiable information (SSN, credit cards, email, phone)"
46
+ },
47
+ {
48
+ "name": "mund_scan_injection",
49
+ "description": "Detect prompt injection and jailbreak attempts"
50
+ },
51
+ {
52
+ "name": "mund_scan_exfiltration",
53
+ "description": "Detect data exfiltration patterns and encoding tricks"
54
+ },
55
+ {
56
+ "name": "mund_analyze_code",
57
+ "description": "Analyze code for security vulnerabilities (SQL injection, XSS, eval)"
58
+ },
59
+ {
60
+ "name": "mund_get_rules",
61
+ "description": "Get current detection rules and patterns"
62
+ },
63
+ {
64
+ "name": "mund_add_rule",
65
+ "description": "Add custom detection rule"
66
+ },
67
+ {
68
+ "name": "mund_get_stats",
69
+ "description": "Get scanning statistics"
70
+ }
71
+ ],
72
+ "categories": [
73
+ "security",
74
+ "developer-tools"
75
+ ],
76
+ "tags": [
77
+ "ai-security",
78
+ "secret-detection",
79
+ "pii-detection",
80
+ "prompt-injection",
81
+ "llm-security",
82
+ "agent-security",
83
+ "weave-protocol"
84
+ ]
85
+ }