HivePaaS
An open-source, self-hosted PaaS on Docker Swarm. Deploy apps, databases and functions from one VPS to a whole cluster, with SSL, backups and autoscaling built in.
金数据 MCP Server 让 Claude、Cursor、Windsurf 等支持 MCP 的 AI 工具连接金数据。配置后,你可以通过自然语言让 AI 助手查询表单、管理数据、创建表单、查看账户信息。
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @jinshujuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
MCP server for Jinshuju (金数据) forms, tables and entries, generated from the Open API v1 openapi.yaml.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗The MCP server for Jinshuju (jinshuju.net): lets Claude, Cursor, Claude Code and other MCP-capable AI tools read and write forms, tables and entries. The tools are generated from the open API v1 openapi.yaml and stay in step with the API.
Two ways to use it:
https://jinshuju.net/mcp, with OAuth sign-in; for claude.ai, Claude Code, Cursor, Windsurf and the like;npx -y @jinshuju/mcp with an access token; for clients that only run local servers.Server URL: https://jinshuju.net/mcp
| Client | Setup |
|---|---|
| claude.ai | Settings → Connectors → Add custom connector, enter the server URL, sign in to Jinshuju |
| Claude Code | claude mcp add jinshuju -s user --transport http https://jinshuju.net/mcp, then run /mcp in Claude Code and sign in to Jinshuju there |
| Cursor | { "mcpServers": { "jinshuju": { "url": "https://jinshuju.net/mcp" } } } |
| Windsurf | Same as above, with the key serverUrl |
Without OAuth (CI, scripts), send an access token directly: --header "Authorization: Bearer YOUR_ACCESS_TOKEN", or add headers to the config.
Create a personal access token under Profile → API, and an account access token under System settings → Account API.
Pass an access token (created as above) in JINSHUJU_ACCESS_TOKEN:
# Claude Code
claude mcp add jinshuju -s user -e JINSHUJU_ACCESS_TOKEN=your_token -- npx -y @jinshuju/mcp
Other clients:
{
"mcpServers": {
"jinshuju": {
"command": "npx",
"args": ["-y", "@jinshuju/mcp"],
"env": { "JINSHUJU_ACCESS_TOKEN": "your_token" }
}
}
}
To check it works, ask the assistant to "list my Jinshuju forms".
Each tool maps to one operation in openapi.yaml; a few combine two operations:
| Category | Tools |
|---|---|
| Forms | list_forms, get_form, create_form, edit_form, copy_form, delete_form, move_form, list_form_cooperators, get_field_rules, edit_field_rules, check_field_data, preview_field_type_change, edit_theme |
| Exams / evaluations | create_exam_form, edit_exam_form, create_evaluation_form, edit_evaluation_form (create / edit the form + its scene settings, two requests) |
| Entries | list_entries, get_entry, create_entry, update_entry, delete_entry, create_entries, patch_entries, count_entries, aggregate_entries, get_form_data_summary, search_entries_in_forms, list_form_entry_stats, import_entries_from_file |
| What I submitted | list_my_submitted_forms, list_my_submitted_entries, search_my_submitted_entries |
| Comments | list_entry_comments, create_entry_comment, update_entry_comment, delete_entry_comment |
| Views | list_form_views, get_form_view, create_form_view, edit_form_view, delete_form_view, list_form_view_entries |
| Tables | list_tables, get_table, create_table, edit_table, move_table |
| Public queries | list_opensearch_queries, get_opensearch_query, create_opensearch_query, edit_opensearch_query, get_opensearch_field_suggestions |
| Folders / account | list_folders, create_folder, get_current_user, get_current_billing_account, list_account_users, get_merchant |
| Uploads | prepare_entry_attachment_upload, prepare_form_image_upload, prepare_import_file_upload, upload_entry_attachment, upload_form_image, upload_import_file |
| Schemas | get_schema (reads an openapi schema by name, e.g. FieldInput, TextFieldInput) |
The full tool → operation mapping is in mcp.overlay.yaml and src/generated/meta.json.
Uploads. A file on disk goes through prepare_*_upload, which returns a one-time upload_url (valid 30 minutes);
the client posts the file to it itself (curl -F file=@<path> <upload_url>), so its bytes never pass through the model, then uses the returned attachment_id.
That needs a client with a shell that can reach jinshuju.net, such as Claude Code, Cursor or Codex.
upload_* carry the file as Base64 inside the tool call, which only suits small content the model has in hand.
Size. The full tools/list is about 39k tokens (o200k estimate; about 36k without outputSchema).
It stays that size by not inlining large schemas: field definitions (52 types), form settings, themes and the like become a one-line pointer; unions that branch on type, such as table columns, keep only their common properties.
The model reads them on demand with get_schema("FieldInput") / get_schema("TextFieldInput").
| Variable | Meaning |
|---|---|
JINSHUJU_ACCESS_TOKEN | Access token (personal or account) |
JINSHUJU_API_BASE_URL | API URL, default https://jinshuju.net/api/v1 |
JINSHUJU_MCP_MAX_RESULT_CHARS | Maximum characters of one result, default 120000; longer results are truncated with a hint to page |
Building, running and deploying the server: DEVELOPMENT.md. How it fits together: ARCHITECTURE.md.
Apache-2.0