Skip to main content
Glama
cuqu-net

cuqu-mcp

Official

CUQU找搭子 (CUQU) MCP Server

Open-source MCP server giving AI agents live access to CUQU (找搭子) — a local offline social activities platform in China (Shenzhen-based, 10+ cities incl. Hong Kong, China). Users discover and book offline interest-based group activities (board games, frisbee, hiking, badminton, fishing, anime and 100+ more categories); organizers publish and run events.

Live demo endpoint (hosted): https://agent.cuqu.net/mcp (Streamable HTTP, per-user cq-sk- keys — see llms.txt) Agent Card: https://cuqu.net/.well-known/agent.json

Talk to the agents (chat UI):

What this repository contains

Path

What it is

server.py

The MCP server implementation — zero-dependency Python, JSON-RPC 2.0 over stdio. Read tools call CUQU's public live activity API; write tools forward to the hosted gateway with a user key.

Dockerfile

One-command container build for the server (glama.ai / docker / any MCP host).

glama.json

glama.ai directory metadata & maintainership.

scripts/check-mcp.py

Connectivity check for the hosted gateway.

skills/, docs/

Agent skill manifests and platform integration docs (Qwen/Dify/Yuanqi).

Related MCP server: touch-grass-mcp

Tools

8 tools across the activity lifecycle:/n

Tool

Type

Description

query_activities

read (no key)

Search live activities by type / city / date — 100+ categories, real-time public data

get_activity_card

read (no key)

Full detail card for one activity (time, venue, price, booking progress, organizer, cover)

query_venues

read (no key)

Curated partner venue directory (capacity, per-head price)

generate_urllink

read (no key)

Share link + WeChat mini-program path for an activity

create_activity

write (key)

Organizer publishes a new event

register_event

write (key)

Book a user into an activity

create_payment

write (key)

Create WeChat Pay for a booking order

check_in

write (key)

On-site check-in / redemption

Write tools are executed by the hosted gateway and require CUQU_API_KEY (cq-sk-..., issued via scan-to-issue flow documented in llms.txt).

Quick start

# stdio, zero dependencies, Python 3.9+
python -u server.py

# or via Docker
docker build -t cuqu-mcp .
docker run -i cuqu-mcp

Claude Desktop / any stdio MCP client:

{
  "mcpServers": {
    "cuqu": {
      "command": "python",
      "args": ["-u", "/path/to/server.py"],
      "env": { "CUQU_API_KEY": "cq-sk-...(optional, enables write tools)" }
    }
  }
}

License

MIT — © 2026 光天科技(深圳)有限公司 (Guangtian Technology (Shenzhen) Co., Ltd.)

Available Tools

8 tools
check_inCInspect

活动现场签到核销(写操作,需 CUQU_API_KEY)。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNo
activity_idYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two useful traits: this is a write operation and it requires CUQU_API_KEY. It still omits whether redemptions are idempotent, what happens on duplicate/invalid codes, and whether the action is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the operation and auth requirement front-loaded. It is efficient, though the brevity is partly under-specification rather than discipline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and 0% parameter documentation, the description leaves too much unstated: what the return value is, error/duplicate handling, and the meaning of the code parameter. It is insufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description offers no explanation of either parameter. It never clarifies that code is the check-in voucher/credential and activity_id identifies which event it belongs to, nor why code is optional when activity_id is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action (on-site event check-in/redemption) with the write nature flagged, which is more than a tautology. However, it doesn't differentiate itself from siblings like register_event or get_activity_card, so an agent must infer that this is the redemption/verification step rather than registration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this tool versus register_event or query_activities, and no preconditions beyond the API-key requirement. The agent gets no routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_activityCInspect

主理人发布新活动(写操作,经托管网关提交,需 CUQU_API_KEY)。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
timeYes
priceNo
titleYes
locationYes
descriptionNo
activity_typeYes
max_participantsNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two meaningful traits: this is a write operation and it requires a CUQU_API_KEY via a managed gateway (an auth requirement). However, it says nothing about side effects, validation failures, duplicate handling, or what the submission returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the action and resource, with operational caveats in parentheses. Efficient, though the parentheses pack multiple concerns together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with no annotations, no output schema, and eight undocumented parameters at 0% coverage needs substantially more: field semantics, required-vs-optional guidance, and result behavior. The current description leaves most of what an agent needs unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Eight parameters (five required) with 0% schema description coverage, yet the description mentions no parameter at all — not even which fields are mandatory. It does not compensate for the coverage gap in any way.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('主理人发布新活动' — host publishes a new activity), which is clearly distinguishable from sibling reads like query_activities and get_activity_card. It does not explicitly name or contrast with any sibling tool, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. The parenthetical '写操作' implies this is the mutation counterpart to the query tools, but the agent must infer that relationship rather than being told to prefer this tool over register_event or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_paymentBInspect

为报名订单创建微信支付(写操作,需 CUQU_API_KEY)。

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose two useful traits: it is a write operation and it requires the CUQU_API_KEY credential. It omits idempotency, what happens on existing/duplicate payment, and what the call returns, so mutation behavior is only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the action, target, and credential requirement front-loaded; nothing redundant. It is efficient, though extremely terse for a mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write/payment tool with no annotations and no output schema, the description should disclose what the call produces (payment params, prepay id, redirect) and side effects. It mentions only the write nature and API key, leaving the agent under-informed about the call's outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the schema does not document order_id at all, and the description only indirectly implies it is a registration-order identifier. The remaining semantics (format, provenance) are left to the parameter name, giving marginal added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create WeChat payment) plus the target object (registration order), which clearly separates it from siblings like query_activities or register_event. It does not, however, name any sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for registration orders' implies context but gives no explicit when-to-use trigger, prerequisite state, or exclusion relative to siblings such as generate_urllink or register_event. An agent must infer when this step belongs in the flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_activity_cardBInspect

获取指定活动的完整详情卡片(时间地点、费用、报名进度、主理人、封面图、报名链接)。

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_idYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. '获取' implies a non-mutating read and the field list hints at the payload contents, but it says nothing about permissions, whether the activity must be published/visible, or error behavior when the id is unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence, front-loaded with the action and resource, with the field enumeration parenthetically appended. No filler, though the parenthetical field list makes it slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description does helpfully enumerate the returned fields, which is more than most. But it omits access requirements, failure modes, and sibling routing, leaving real gaps for a tool an agent must pick correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (activity_id) at 0% schema coverage, but it is self-evident and the description's '指定活动' confirms it identifies the target activity. No format or syntax guidance is added, so this lands at the single-obvious-param baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (获取) and resource (指定活动的完整详情卡片) and even enumerates the fields returned. However, it never distinguishes itself from the sibling query_activities, which an agent could easily confuse it with for detail retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives. With query_activities sitting as a sibling, the description gives the agent no basis for choosing this card-fetch tool over a general activity query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_activitiesBInspect

查询CUQU找搭子平台上的线下活动(桌游/飞盘/徒步/羽毛球/二次元/钓鱼等100+品类,覆盖深圳等10+城市,含中国香港)。数据为平台实时公开数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo城市,默认 深圳
dateNo日期 YYYY-MM-DD,筛选当天活动
activity_typeNo活动类型关键词,如 桌游/羽毛球/飞盘

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries full burden. It usefully discloses that results are live, public platform data (real-time freshness, read-only nature), but omits pagination behavior, result limits, and response shape. Some behavioral value, but far from complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core purpose front-loaded and the domain scope following. Little waste, though the exhaustive category enumeration is more marketing than operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must carry the load. It conveys the domain and data provenance well, but leaves return format, pagination and result-size behavior undocumented for a query tool whose parameters are all optional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents city, date and activity_type. The description reinforces category/city breadth (100+ 品类, 10+ 城市, 含中国香港) but adds no syntax or format rules beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (查询) and resource (线下活动) plus the platform scope, categories, cities and data source. It clearly differs from query_venues (venues) and get_activity_card, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description is entirely about what data exists on the platform, not about when to invoke this tool versus get_activity_card, query_venues or create_activity. No conditions, prerequisites or alternatives are given; usage is only implied by the parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_venuesCInspect

查询合作场地目录(按城市和活动类型匹配,含容量与人均价)。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYes
activity_typeNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses that results include capacity and per-person price, but says nothing about read-only nature, permissions, result limits, or ordering — thin for a directory query with zero structured behavioral hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and matching criteria come first. It is compact and earns its space, though it packs caveats into a parenthetical rather than prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully previews returned fields (capacity, per-person price). However, with no annotations and 0% schema coverage, gaps around result count, permissions, and parameter formats remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and both parameters are bare strings, so the description must compensate. It does name the two matching axes (city, activity type), but adds no format, casing, or accepted-value guidance for either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (查询) and resource (合作场地目录), plus the matching axes (city, activity type). It is clearly distinct from siblings like query_activities, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical hints at how matching works, but there is no statement of when to use this tool versus query_activities or any other sibling, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_eventBInspect

为用户报名指定活动(写操作,需 CUQU_API_KEY)。

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNo
activity_idYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, but it does add two useful facts: this is a write operation and it requires CUQU_API_KEY. It says nothing about duplicate registrations, capacity limits, reversibility, or failure modes, which are the main risks for an enrollment write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no waste, and the write/auth caveat is parenthetically attached to the action. Slightly terse given the gaps it leaves, but structurally sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter write tool with no annotations, no output schema, and 0% schema coverage, the description covers auth and the write nature but leaves parameter semantics and failure behavior unexplained. It is minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and neither parameter is documented in the schema. The description implies activity_id (指定活动) but never explains what user_id is, whether it can be omitted for the authenticated user, or what format either ID takes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (报名/register) and resource (活动/activity), and the user-for-activity relationship is clear enough to distinguish it from siblings like create_activity or query_activities. It stops short of explicitly naming an alternative, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as create_activity, check_in, or query_activities. The intended context is only implied by the verb 报名.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.1
    • First observedcheck_in
    • First observedcreate_activity
    • First observedcreate_payment
    • First observedgenerate_urllink
    • First observedget_activity_card
    • First observedquery_activities
    • First observedquery_venues
    • First observedregister_event

TDQS

B3.3/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action and resource: searching activities/venues, fetching activity details, generating links, creating activities, registering users, creating payments, and checking in. The read/write split is clear, and no two tools appear to do the same thing.

Naming Consistency4/5

Names are consistently snake_case and mostly follow verb_noun structure (query_activities, create_activity, register_event, create_payment). Minor deviations like generate_urllink (missing internal separator) and check_in (phrasal verb without a noun) are small but noticeable.

Tool Count5/5

Eight tools is well-scoped for a platform MCP covering discovery, publishing, registration, payment, and check-in. Each tool earns its place without obvious redundancy.

Completeness3/5

Core lifecycle actions are present: query, detail, create, register, pay, and check in. However, there is no update or delete for activities, and no cancellation/refund or registration-status queries, which are notable gaps for a production event workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    DragonMCP is a Model Context Protocol (MCP) server designed for AI Agents to interact with local life services in Greater China (Mainland China, HKSAR) and Asia. DragonMCP 是一个专为 AI Agent 设计的 Model Context Protocol (MCP) 服务器,旨在提供中国内地、中国香港及亚洲地区的本地生活服务接口。
    21
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Preference-aware events discovery MCP server that aggregates events, restaurants, and cultural activities across multiple sources and re-ranks them against your personal taste profile to surface things you'd actually want to do.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that consolidates 237+ social/e-commerce data APIs (TikTok, Xiaohongshu, Taobao, etc.) into 6 fixed tools, enabling natural language semantic search and dynamic invocation without code changes.
    1
    MIT