Skip to main content
Glama
yamanoku

connpass-user-mcp-server

by yamanoku

Connpassのユーザー情報や参加イベント情報等を取得するModel Context Protocol (MCP)サーバーです。

セットアップ

必要な環境

  1. (Connpass APIキーをすでに取得済の場合はスキップ)Connpass APIキーの発行をしてもらいます。詳細についてはconnpassのAPI利用についてを参照してください。

  2. このリポジトリをクローンします。

  3. 必要な環境変数を設定します。.env.example.env にコピーして、Connpass APIキーを設定します。

cp .env.example .env
# .envファイルを編集してCONNPASS_API_KEYを設定
  1. サーバーを起動します。

Denoでの起動(推奨)

"connpass-user-mcp-server": {
  "command": "wsl.exe",
  "args": [
    "/home/user/.deno/bin/deno",
    "--allow-net=connpass.com",
    "--env-file=/home/user/connpass-mcp-server/.env",
    "--allow-read",
    "--allow-env",
    "/home/user/connpass-mcp-server/index.ts"
  ]
}

Node.jsでの起動

  1. MCPサーバーを起動するために必要な依存関係をインストールします。

npm ci
  1. TypeScriptをビルドします。

npm run build
  1. MCPクライアントの設定ファイル側にビルドしたファイルを指定します。

"connpass-user-mcp-server": {
  "command": "wsl.exe",
  "args": [
    "/home/user/.local/share/mise/installs/node/24.18.1/bin/node",
    "--env-file=/home/user/connpass-mcp-server/.env",
    "/home/user/connpass-mcp-server/dist/index.js"
  ]
}

Dockerでの起動

Dockerfileを使用してサーバーを起動することもできます。

  1. Dockerイメージをビルドします。

docker build -t connpass-user-mcp-server .
  1. コンテナを起動します。APIキーは環境変数として渡します。

docker run -e CONNPASS_API_KEY=XXXXXXXXXXXXXXXX connpass-user-mcp-server

MCPクライアントの設定ファイルでは、dockerコマンドを指定します。

"connpass-user-mcp-server": {
  "command": "docker",
  "args": [
    "run",
    "-e",
    "CONNPASS_API_KEY=XXXXXXXXXXXXXXXX",
    "connpass-user-mcp-server"
  ]
}

npxでの起動(非推奨)

@yamanoku/connpass-user-mcp-serverにてパッケージを提供しているため、リポジトリをクローンせずにnpxでMCPサーバーの起動が可能です。

"connpass-user-mcp-server": {
  "command": "wsl.exe",
  "args": [
    "bash",
    "-c",
    "CONNPASS_API_KEY=XXXXXXXXXXXXXXXX /home/user/.local/share/mise/installs/node/24.18.1/bin/npx -y @yamanoku/connpass-user-mcp-server",
  ]
},

ただしnpxでMCPサーバーを起動するのはサプライチェーン攻撃などのセキュリティ的な懸念があるため非推奨としています。

Related MCP server: Connpass MCP Server

機能

以下のMCPサーバーのToolsを提供しています:

Tools

  • get_connpass_user_list - Connpassユーザーの基本情報を取得します

    • パラメータ: nickname (Connpassユーザー名/ニックネームの配列)

    • 取得情報: 参加イベント数、管理イベント数、発表イベント数、ブックマークイベント数

  • get_connpass_user_group_list - Connpassユーザーが所属するグループ一覧を取得します

    • パラメータ: nickname (Connpassユーザー名/ニックネーム)

    • 取得情報: グループ名、URL、説明、参加者数など

  • get_connpass_user_events - Connpassユーザーが参加したイベント情報を取得します

    • パラメータ: nickname (Connpassユーザー名/ニックネーム)

    • 取得情報: イベント名、日時、場所、URL、説明

  • get_connpass_user_presenter_events - Connpassユーザーが発表者として参加したイベント情報を取得します

    • パラメータ: nickname (Connpassユーザー名/ニックネーム)

    • 取得情報: イベント名、日時、場所、URL、説明

プロンプト例

次のようなプロンプトをLLMへ渡すことが可能です:

  • 「yamanoku, okuto_oyamaさんのConnpassユーザー情報を教えて」

  • 「yamanokuさんの参加するConnpassイベント情報を教えて」

  • 「yamanokuさんの発表したConnpassイベント一覧を表示して」

  • 「yamanokuさんのConnpass所属グループを一覧表示して」

テスト

Denoでのテスト

Connpass APIの統合テストを実行します:

deno task test

謝辞

このOSSはGPT-4o Image Generationによってロゴを製作、Claude 3.7 Sonnetによって実装、ドキュメントのサンプルを提案いただきました。感謝申し上げます。

ライセンス

MIT License

Available Tools

4 tools
get_connpass_user_eventsC

Fetch events for a specific Connpass user

ParametersJSON Schema
NameRequiredDescriptionDefault
nicknameYesConnpass user ID/nickname

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without revealing any behavioral traits such as authentication requirements, rate limits, whether past or future events are returned, pagination, or ordering. This leaves significant unknowns for the agent.

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

Conciseness5/5

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

The description is a single concise sentence with no filler or redundancy. It is front-loaded with the action 'Fetch' and immediately specifies the resource. Every word earns its place, making it highly efficient.

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?

Despite having only one parameter and no output schema, the description is too minimal for a tool that interacts with an external API. It does not explain what the events represent (attending, hosting, etc.), the return format, or any credentials needed. The lack of annotations and output schema combined with a one-line description leaves significant gaps for an agent.

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?

The schema already covers 100% of the parameters with a clear description for 'nickname'. The tool description adds no additional meaning beyond the schema, but since schema coverage is high, a baseline of 3 is appropriate. The description does not clarify the expected format or resolution of the nickname, but the schema suffices.

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 uses a specific verb 'Fetch' and identifies the resource as 'events for a specific Connpass user'. It is clear what the tool does, but it does not distinguish it from the sibling tool 'get_connpass_user_presenter_events', which also fetches events for a user (presented ones). This ambiguity prevents a perfect score.

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 gives no guidance on when to use this tool versus the alternatives. It does not mention exclusions or contexts where another tool would be more appropriate, such as when needing presenter-specific events or user group lists. The intended usage is only implied by the tool name.

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

get_connpass_user_group_listC

Fetch Connpass user group information

ParametersJSON Schema
NameRequiredDescriptionDefault
nicknameYesConnpass user ID/nickname

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It provides no details about read-only guarantees, authentication needs, response format, or any side effects, adding no context beyond the tool's name.

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

Conciseness5/5

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

The description is a single, waste-free sentence that clearly names the resource and action. It is appropriately compact for a simple tool with one parameter.

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?

The absence of an output schema and annotations means the description should clarify what 'group information' includes and how the tool behaves. It does not specify response structure, limitations, or how this differs from sibling tools, leaving an agent with insufficient context to confidently invoke it.

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?

The schema fully documents the 'nickname' parameter with a clear description ('Connpass user ID/nickname'), and schema coverage is 100%. The tool description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.

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 uses a specific verb 'Fetch' and resource 'Connpass user group information', clearly indicating the action. However, it does not distinguish from sibling tools like get_connpass_user_list or get_connpass_user_events, leaving ambiguity about the exact scope of 'group information'.

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 guidance is provided about when to use this tool over alternatives. The description only states the basic action without referencing sibling tools, prerequisites, or contextual triggers, leaving the agent without direction on selection.

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

get_connpass_user_listC

Fetch Connpass user information

ParametersJSON Schema
NameRequiredDescriptionDefault
nicknameYesConnpass user ID/nickname

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, and the description only indicates a read operation ('Fetch'). It does not disclose authentication requirements, rate limits, or output characteristics.

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

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words, earning a high score for conciseness.

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?

Despite simplicity, the description omits what the returned data represents (list of users? profiles?), and given siblings, it is ambiguous. No output schema exists to fill the gap, so more context is needed.

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?

The schema already provides full coverage for the single 'nickname' parameter, so the description adds no new semantic meaning. The baseline for full schema coverage is 3.

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

Purpose3/5

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

The description uses a clear verb ('Fetch') and resource ('Connpass user information'), but it does not specify the exact scope or distinguish this from siblings like get_connpass_user_events or get_connpass_user_group_list. The name suggests a list of users, but the description says 'user information', leaving ambiguity.

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 guidance is provided on when to use this tool versus the sibling tools. There are no exclusions or alternative recommendations.

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

get_connpass_user_presenter_eventsA

Fetch presenter events for a specific Connpass user

ParametersJSON Schema
NameRequiredDescriptionDefault
nicknameYesConnpass user ID/nickname

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. However, it only states the action 'Fetch' without mentioning side effects, rate limits, authentication requirements, or what makes an event a 'presenter event'.

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

Conciseness5/5

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

The description is a single sentence with no filler or redundant content. It is appropriately concise and front-loads the core purpose effectively.

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 simple read tool with one parameter and no output schema, the description is minimal but lacks essential context. It does not clarify what constitutes a 'presenter event' or what the return value represents, leaving ambiguity that could confuse users.

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?

The sole parameter 'nickname' is fully described in the schema as 'Connpass user ID/nickname', achieving 100% schema coverage. The description adds no additional meaning beyond what the schema already provides.

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

Purpose5/5

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

The description uses the specific verb 'Fetch' and clearly identifies the resource as 'presenter events for a specific Connpass user'. The term 'presenter' distinguishes it from the sibling get_connpass_user_events, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool over alternatives like get_connpass_user_events or get_connpass_user_list. Usage context is only implied by the tool name itself, not elaborated in the description.

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. 4 tool updatesv0.3.0
    • First observedget_connpass_user_events
    • First observedget_connpass_user_group_list
    • First observedget_connpass_user_list
    • First observedget_connpass_user_presenter_events

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct aspect of Connpass user data: user info, user groups, user's events, and user's presenter events. The descriptions clearly differentiate the resource types, so an agent is unlikely to select the wrong tool.

Naming Consistency4/5

All tools follow the 'get_connpass_user_' prefix, but the resource nouns vary slightly in style ('list' vs 'group_list' vs 'events'). The pattern is consistent enough, though 'user_list' is a bit ambiguous compared to the other clearly resource-specific names.

Tool Count5/5

With only 4 tools, the server is well-scoped and focused on read-only Connpass user information. Each tool covers a distinct data need without unnecessary bloat, fitting comfortably within the ideal 3-15 range.

Completeness4/5

The server covers the core user-oriented resources: profile, groups, events, and presenter events. Minor gaps like attendee history or bookmarks could exist, but for a typical read-only user information server, this is a reasonable and functional surface.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables natural language search and retrieval of data from Japan's Ministry of Land, Infrastructure, Transport and Tourism (MLIT) Data Platform, including location-based queries, attribute filtering, and data visualization capabilities.
    18
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving IT study groups and event information from connpass.com, including user attended events, group events, and location-based event searches.
    -
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to securely query and analyze KARTE event data via BigQuery. It provides tools for fetching event logs, aggregating data, and exploring schemas using natural language.
    4
    -