@qikdev/mcp 6.10.3 → 6.12.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 CHANGED
@@ -1,14 +1,19 @@
1
1
  # Qik MCP Server
2
2
 
3
- A comprehensive Model Context Protocol (MCP) server for the Qik platform, enabling AI assistants to interact intelligently with Qik's content management system, user management, forms, files, and more.
3
+ A Model Context Protocol (MCP) server for the Qik platform, enabling AI assistants to interact with Qik's content management system, user management, forms, files, and more.
4
4
 
5
5
  ## Install
6
6
 
7
7
  ### One-Click Install (Claude Desktop)
8
8
 
9
- Download the [`qik.mcpb`](https://api.qik.dev/file/69a624516644ea20ba482e2e/qik.mcpb) file and open it. Claude Desktop will prompt you to install the extension and enter your Qik API access token. That's it.
9
+ 1. Download the [`qik.mcpb`](https://api.qik.dev/file/69a624516644ea20ba482e2e/qik.mcpb) file and open it
10
+ 2. Claude Desktop will prompt you to install the extension
11
+ 3. Enter your Qik API access token and a server name when prompted
12
+ 4. **Restart Claude Desktop** — the server won't appear until you quit and reopen the app
10
13
 
11
- ### CLI Install (Developers)
14
+ > **Multiple organisations:** You can install the extension multiple times with different access tokens and server names (e.g. `qik-acme`, `qik-contoso`) to connect to multiple Qik organisations at once.
15
+
16
+ ### CLI Install
12
17
 
13
18
  ```bash
14
19
  npx @qikdev/mcp setup
@@ -19,192 +24,152 @@ Setup will ask you to choose how to authenticate:
19
24
  1. **Login with email and password** — enter your Qik credentials (supports MFA). The server stores a refresh token and automatically keeps your session alive.
20
25
  2. **Enter an access token** — paste a static token generated in the Qik dashboard.
21
26
 
22
- Then it automatically configures Claude Desktop. Restart Claude Desktop and you're ready to go.
27
+ You'll then choose a server name (defaults to `qik-{orgname}`) and the CLI will configure Claude Desktop automatically.
23
28
 
24
- ## Key Features
29
+ **Important: Restart Claude Desktop after setup.** The server won't be available until you quit and reopen the app.
25
30
 
26
- - **Dynamic Content Type Discovery**: Automatically discovers and understands all content types defined in your Qik instance
27
- - **Smart Validation**: Validates requests against actual content type definitions before making API calls
28
- - **Comprehensive Coverage**: 48 tools covering content management, profiles, workflows, campaigns, interface building, and more
29
- - **Automatic Token Refresh**: Sessions stay alive — tokens are refreshed automatically before they expire
30
- - **Intelligent Error Handling**: Context-aware error messages with suggested fixes
31
+ > **Multiple organisations:** Run `npx @qikdev/mcp setup` again to add another organisation. Each one gets its own server name and config file.
31
32
 
32
- ## 📋 CLI Commands
33
+ ## CLI Commands
33
34
 
34
35
  ```bash
35
- npx @qikdev/mcp setup # Initial setup (interactive)
36
- npx @qikdev/mcp status # Check configuration status
37
- npx @qikdev/mcp update-token # Update your access token
38
- npx @qikdev/mcp install # Add to Claude Desktop config
39
- npx @qikdev/mcp remove # Remove from Claude Desktop config
36
+ npx @qikdev/mcp setup # Set up a new instance (can run multiple times)
37
+ npx @qikdev/mcp status # Show all configured instances and their status
38
+ npx @qikdev/mcp update-token # Update the access token for an instance
39
+ npx @qikdev/mcp update # Update to the latest version
40
+ npx @qikdev/mcp remove # Remove an instance
41
+ npx @qikdev/mcp install # Show installation guide
40
42
  ```
41
43
 
42
- ## 🛠️ Available Tools
44
+ When you have multiple instances configured, commands like `update-token` and `remove` will prompt you to choose which instance to manage.
43
45
 
44
- ### Authentication & Session
45
- - `qik_get_user_session` - Get current user session information
46
+ ## Available Tools
46
47
 
47
- ### Content Type Discovery
48
- - `qik_get_glossary` - Get all available content types and their definitions
49
- - `qik_get_content_definition` - Get detailed definition for a specific content type
48
+ ### Discovery
49
+ - `get_glossary` List all content types and their definitions
50
+ - `get_content_type_details` Get detailed schema for a content type
51
+ - `search_content_types` — Search content types by keyword
52
+ - `get_filter_comparators` — Get available filter operators
53
+ - `get_entity_relationships` — Get relationship types between entities
50
54
 
51
55
  ### Content Management
52
- - `qik_get_content` - Get content item by ID or slug
53
- - `qik_list_content` - List content items with filtering and search
54
- - `qik_create_content` - Create new content item with validation
55
- - `qik_update_content` - Update existing content item (partial or full replace)
56
- - `qik_delete_content` - Delete content item
57
-
58
- ### Profile Management
59
- - `qik_list_profiles` - Search and list profiles/people
60
- - `qik_create_profile` - Create new profile/person
61
-
62
- ### Form Management
63
- - `qik_get_form` - Get form definition
64
- - `qik_submit_form` - Submit form data
56
+ - `create_content` Create a new content item with validation
57
+ - `list_content` Query and filter content with sorting and pagination
58
+ - `get_content` Get a single content item by ID
59
+ - `update_content` Update an existing content item
60
+ - `delete_content` — Soft-delete a content item
61
+ - `restore_content` — Restore a deleted content item
62
+ - `global_search` — Search across all content types
63
+ - `count_content` Count content matching filters
65
64
 
66
65
  ### File Management
67
- - `qik_upload_file` - Upload files to Qik (supports base64 encoding)
68
-
69
- ### Search & Discovery
70
- - `qik_search_content` - Global content search across all types
71
- - `qik_get_scopes` - Get available scopes/permissions tree
72
- - `qik_get_smartlist` - Execute smartlist queries
73
-
74
- ## 🎯 Usage Examples
75
-
76
- ### Discovering Content Types
77
- ```javascript
78
- // Get all available content types
79
- const glossary = await qik_get_glossary();
80
-
81
- // Get specific content type definition
82
- const articleDef = await qik_get_content_definition({ type: "article" });
83
- ```
84
-
85
- ### Creating Content
86
- ```javascript
87
- // The server automatically validates against your content type definition
88
- const newArticle = await qik_create_content({
89
- type: "article",
90
- title: "My New Article",
91
- data: {
92
- body: "Article content here...",
93
- author: "John Doe"
94
- },
95
- meta: {
96
- scopes: ["public"],
97
- security: "public"
98
- }
99
- });
100
- ```
101
-
102
- ### Searching Content
103
- ```javascript
104
- // Search across all content types
105
- const results = await qik_search_content({
106
- query: "important announcement",
107
- types: ["article", "event"],
108
- limit: 10
109
- });
110
-
111
- // List specific content type with filters
112
- const articles = await qik_list_content({
113
- type: "article",
114
- search: "announcement",
115
- filter: {
116
- operator: "and",
117
- filters: [{
118
- key: "meta.status",
119
- comparator: "equal",
120
- value: "active"
121
- }]
122
- },
123
- sort: {
124
- key: "meta.created",
125
- direction: "desc",
126
- type: "date"
127
- }
128
- });
129
- ```
130
-
131
- ## 🔍 Smart Features
132
-
133
- ### Automatic Content Type Validation
134
- The server automatically:
135
- - Checks if content types exist before making API calls
136
- - Validates required fields based on your content type definitions
137
- - Suggests correct field names when invalid ones are used
138
- - Provides helpful error messages with available options
66
+ - `upload_file` Upload a file from a local path or URL
67
+ - `check_file_exists` — Check for duplicates before uploading
68
+ - `replace_file` Replace the file on an existing content item
69
+
70
+ ### Profiles & Relationships
71
+ - `get_user_session` Get current user session and permissions
72
+ - `get_profile_timeline` — Get activity timeline for a profile
73
+ - `get_profile_relationships` List relationships for a profile
74
+ - `create_relationship` — Create a relationship between profiles
75
+ - `delete_relationship` Remove a relationship
76
+ - `create_profile_with_relationship` — Create a profile and link it in one step
77
+ - `get_profile_groups` — Get groups a profile belongs to
78
+ - `get_profile_access` Get access permissions for a profile
79
+ - `get_profile_blockout` — Get blockout dates for a profile
80
+ - `create_profile_blockout` Create a blockout period
81
+
82
+ ### Definitions
83
+ - `get_definition_schema` — Get the field schema for a definition
84
+ - `search_similar_definitions` — Find similar definition types
85
+ - `create_definition` — Create a new content type definition
86
+ - `update_definition` Update an existing definition
87
+ - `list_definitions` List all definitions
88
+
89
+ ### Campaigns & Communication
90
+ - `get_campaign_recipients` — Get recipient list for a campaign
91
+ - `get_campaign_analytics` Get campaign performance data
92
+ - `send_campaign` — Send a campaign
93
+ - `send_test_campaign` — Send a test campaign
94
+ - `send_bulk_sms` — Send bulk SMS messages
95
+
96
+ ### Scopes
97
+ - `get_scope_tree` — Get the full scope hierarchy
98
+ - `get_actionable_scopes` — Get scopes the user can act on
99
+ - `add_profile_to_scope` — Add a profile to a scope
100
+ - `remove_profile_from_scope` — Remove a profile from a scope
101
+
102
+ ### Smart Lists & Duplicates
103
+ - `run_smartlist` Execute a smart list query
104
+ - `export_smartlist` Export smart list results
105
+ - `detect_duplicates` — Find potential duplicate records
106
+ - `mark_distinct` — Mark records as not duplicates
107
+ - `preview_merge` — Preview a merge of duplicate records
108
+ - `start_merge` — Execute a merge
109
+ - `get_merge_progress` — Check merge progress
110
+
111
+ ### Check-in
112
+ - `create_checkin` — Check in a profile to an event
113
+ - `checkout` — Check out a profile
114
+
115
+ ### Forms
116
+ - `list_forms` — List available forms
117
+
118
+ ### Workflows
119
+ - `list_workflows` — List workflows
120
+ - `get_workflow` — Get workflow details
121
+ - `create_workflow` — Create a new workflow
122
+ - `update_workflow` — Update an existing workflow
123
+
124
+ ### Interface Builder
125
+ - `list_interface_components` — List available components
126
+ - `get_interface_component_details` — Get component schema
127
+ - `create_interface` — Create a new interface
128
+ - `get_interface` — Get interface details
129
+ - `publish_interface` — Publish an interface
130
+ - `add_interface_route` / `update_interface_route` / `remove_interface_route` — Manage routes
131
+ - `add_interface_section` / `update_interface_section` / `remove_interface_section` — Manage sections
132
+ - `set_interface_custom_component` / `set_interface_service` / `set_interface_menu` / `set_interface_styles` / `set_interface_layout` — Configure interface settings
133
+
134
+ ## Configuration
139
135
 
140
- ### Dynamic Schema Generation
141
- - Tool schemas are generated based on your actual content types
142
- - Enum values are populated from your glossary
143
- - Field descriptions include reference types and constraints
144
- - Required fields are automatically marked in schemas
145
-
146
- ### Intelligent Error Handling
147
- - Context-aware error messages explain what went wrong and how to fix it
148
- - Permission errors include information about required scopes
149
- - Field validation errors specify exactly which fields are invalid and why
150
- - Network errors are handled gracefully with retry suggestions
136
+ ### Environment Variables
151
137
 
152
- ## 🔧 Configuration
138
+ - `QIK_ACCESS_TOKEN` — Your Qik API access token (required)
139
+ - `QIK_API_URL` — Qik API base URL (defaults to `https://api.qik.dev`)
140
+ - `QIK_INSTANCE` — Instance name for multi-org setups (set automatically by setup)
153
141
 
154
- ### Environment Variables
155
- - `QIK_ACCESS_TOKEN` - Your Qik API access token (required)
156
- - `QIK_API_URL` - Qik API base URL (optional, defaults to https://api.qik.dev)
142
+ ## Troubleshooting
157
143
 
158
- ### Advanced Configuration
159
- The server automatically caches glossary data for 5 minutes to improve performance while ensuring content type information stays current.
144
+ ### Server not showing up in Claude Desktop
160
145
 
161
- ## 🚨 Troubleshooting
146
+ **Restart Claude Desktop.** After installing or running setup, you must quit and reopen Claude Desktop for the server to appear.
162
147
 
163
148
  ### Authentication Issues
149
+
164
150
  ```bash
165
151
  # Check your token status
166
152
  npx @qikdev/mcp status
167
153
 
168
- # Reconfigure if needed
154
+ # Update your token
155
+ npx @qikdev/mcp update-token
156
+
157
+ # Reconfigure from scratch
169
158
  npx @qikdev/mcp setup
170
159
  ```
171
160
 
172
- ### Common Issues
173
-
174
- **"Content type 'xyz' not found"**
175
- - The server will list all available content types in the error message
176
- - Use `qik_get_glossary` to see all available types
177
-
178
- **"Field validation errors"**
179
- - The server provides specific information about which fields are invalid
180
- - Use `qik_get_content_definition` to see field requirements for a content type
161
+ ### Common Errors
181
162
 
182
- **"Access denied"**
183
- - Check that your access token has the required permissions
184
- - Verify you're accessing content within your permitted scopes
163
+ - **"Content type not found"** — Use `get_glossary` to see available types
164
+ - **"Field validation errors"** Use `get_content_type_details` to see required fields
165
+ - **"Access denied"** Check that your token has the required permissions
185
166
 
186
- ## 📚 API Reference
167
+ ## License
187
168
 
188
- For detailed API documentation, visit: https://docs.qik.dev/api
169
+ MIT see [LICENSE](LICENSE) for details.
189
170
 
190
- ## 🤝 Contributing
191
-
192
- 1. Fork the repository
193
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
194
- 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
195
- 4. Push to the branch (`git push origin feature/amazing-feature`)
196
- 5. Open a Pull Request
197
-
198
- ## 📄 License
199
-
200
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
201
-
202
- ## 🆘 Support
171
+ ## Support
203
172
 
204
173
  - **Documentation**: https://docs.qik.dev
205
174
  - **Issues**: https://gitlab.com/qikdevelopers/qik-mcp-server/-/issues
206
175
  - **Email**: developers@qik.dev
207
-
208
- ---
209
-
210
- Built with ❤️ by the Qik team