flowzap-mcp 1.0.3 β†’ 1.0.5

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.
Files changed (2) hide show
  1. package/README.md +125 -110
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,138 +1,153 @@
1
- # FlowZap MCP Server
1
+ # MCP Registry
2
2
 
3
- Create workflow diagrams using AI assistants like Claude, Cursor, and Windsurf.
3
+ The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
4
4
 
5
- ## What is FlowZap?
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
- [FlowZap](https://flowzap.xyz) is a visual workflow diagramming tool with a text-based DSL called **FlowZap Code**. This MCP server lets AI assistants create diagrams for you.
7
+ ## Development Status
8
8
 
9
- ## Installation
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
- ### For Claude Desktop
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)).
12
12
 
13
- Add to your `claude_desktop_config.json`:
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)
14
18
 
15
- ```json
16
- {
17
- "mcpServers": {
18
- "flowzap": {
19
- "command": "npx",
20
- "args": ["-y", "flowzap-mcp"]
21
- }
22
- }
23
- }
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
40
+
41
+ ```bash
42
+ # Start full development environment
43
+ make dev-compose
24
44
  ```
25
45
 
26
- Config file locations:
27
- - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
28
- - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
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.
47
+
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.
49
+
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`.
51
+
52
+ The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
53
+
54
+ <details>
55
+ <summary>Alternative: Running a pre-built Docker image</summary>
29
56
 
30
- ### For Cursor
57
+ Pre-built Docker images are automatically published to GitHub Container Registry:
31
58
 
32
- Add to your Cursor MCP settings with the same configuration.
59
+ ```bash
60
+ # Run latest stable release
61
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
33
62
 
34
- ### For Windsurf IDE
63
+ # Run latest from main branch (continuous deployment)
64
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
35
65
 
36
- Add to your `~/.codeium/windsurf/mcp_config.json`:
66
+ # Run specific release version
67
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
37
68
 
38
- ```json
39
- {
40
- "mcpServers": {
41
- "flowzap": {
42
- "command": "npx",
43
- "args": ["-y", "flowzap-mcp"]
44
- }
45
- }
46
- }
69
+ # Run development build from main branch
70
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
47
71
  ```
48
72
 
49
- ## Available 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)
50
77
 
51
- ### `flowzap_validate`
52
- Validate FlowZap Code syntax before creating a diagram.
78
+ </details>
53
79
 
54
- ### `flowzap_create_playground`
55
- Create a shareable playground URL with your diagram.
80
+ #### Publishing a server
56
81
 
57
- ### `flowzap_get_syntax`
58
- Get FlowZap Code syntax documentation and examples.
82
+ To publish a server, we've built a simple CLI. You can use it with:
59
83
 
60
- ## Usage Examples
84
+ ```bash
85
+ # Build the latest CLI
86
+ make publisher
61
87
 
62
- Ask your AI assistant:
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
99
+ ```
100
+
101
+ There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
63
102
 
64
- - "Create a workflow diagram for an order processing system"
65
- - "Make a flowchart showing user registration flow"
66
- - "Diagram a CI/CD pipeline with build, test, and deploy stages"
103
+ <!--
104
+ For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
+ -->
67
106
 
68
- The assistant will:
69
- 1. Generate FlowZap Code based on your description
70
- 2. Validate the code
71
- 3. Create a playground URL you can view and share
107
+ ## Architecture
72
108
 
73
- ## FlowZap Code Example
109
+ ### Project Structure
74
110
 
75
111
  ```
76
- sales {
77
- # Sales Team
78
- n1: circle label:"Order Received"
79
- n2: rectangle label:"Validate Order"
80
- n3: diamond label:"Valid?"
81
- n1.handle(right) -> n2.handle(left)
82
- n2.handle(right) -> n3.handle(left)
83
- n3.handle(right) -> fulfillment.n4.handle(left) [label="Yes"]
84
- n3.handle(bottom) -> n6.handle(top) [label="No"]
85
- n6: rectangle label:"Reject Order"
86
- }
87
-
88
- fulfillment {
89
- # Fulfillment
90
- n4: rectangle label:"Process Order"
91
- n5: circle label:"Complete"
92
- n4.handle(right) -> n5.handle(left)
93
- }
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
94
133
  ```
95
134
 
96
- **Key syntax rules:**
97
- - **Node IDs**: Must be `n1`, `n2`, `n3`... (globally unique, sequential)
98
- - **Shapes**: Only `circle`, `rectangle`, `diamond`, `taskbox`
99
- - **Node attributes**: Use colon β†’ `label:"Text"`
100
- - **Edge labels**: Use equals in brackets β†’ `[label="Yes"]`
101
- - **Edges**: Must use handles β†’ `n1.handle(right) -> n2.handle(left)`
102
- - **Cross-lane**: Prefix with lane name β†’ `fulfillment.n4.handle(left)`
103
-
104
- ## Security
105
-
106
- This MCP server implements comprehensive security measures:
107
-
108
- ### What It Does
109
- - **Only calls official FlowZap APIs** - Hardcoded to `https://flowzap.xyz` only
110
- - **No authentication required** - Uses only public, anonymous endpoints
111
- - **No user data access** - Cannot read your diagrams, account, or any private data
112
- - **Runs locally** - The server runs on your machine, not exposed to the internet
113
-
114
- ### Security Features
115
- - **SSRF Protection** - URL whitelist prevents requests to unauthorized hosts
116
- - **Input Validation** - Code size limits (50KB max), sanitization of control characters
117
- - **Rate Limiting** - Client-side rate limiting (30 requests/minute)
118
- - **Request Timeout** - 30-second timeout prevents hanging connections
119
- - **Response Sanitization** - Only expected fields are returned from API responses
120
- - **Error Handling** - Internal errors are logged but not exposed to clients
121
- - **Tool Whitelisting** - Only explicitly defined tools can be called
122
-
123
- ### What It Cannot Do
124
- - Access your FlowZap account or saved diagrams
125
- - Modify any existing data
126
- - Make requests to any domain other than flowzap.xyz
127
- - Store any credentials or tokens
128
-
129
- ## Links
130
-
131
- - [FlowZap Website](https://flowzap.xyz)
132
- - [FlowZap Code Documentation](https://flowzap.xyz/flowzap-code)
133
- - [npm Package](https://www.npmjs.com/package/flowzap-mcp)
134
- - [MCP Registry](https://registry.modelcontextprotocol.io)
135
-
136
- ## License
137
-
138
- MIT
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
142
+
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
146
+
147
+ ## Community Projects
148
+
149
+ Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
150
+
151
+ ## More documentation
152
+
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": "flowzap-mcp",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "mcpName": "io.github.flowzap-xyz/flowzap",
5
5
  "description": "MCP server for FlowZap - Create workflow diagrams via AI assistants",
6
6
  "main": "dist/index.js",