Skip to main content
Glama

SentiSift MCPサーバー

SentiSiftの公式Model Context Protocol (MCP) サーバーです。MCP互換のAIホスト(Claude Desktop、Cursor、VS Code、Continueなど)から、SentiSiftのコメントモデレーションおよびインテリジェンスAPIをネイティブツールとして呼び出せるようになります。

このツールでできること

インストールすると、AIアシスタントは以下のことが可能になります:

  • 会話の中で直接コメントを分析:「これら50件のコメントをSentiSiftで実行し、ボットと感情の分布を表示して。」

  • アカウント状態の確認:「SentiSiftの残高はいくらで、サブスクリプションはいつ更新される?」

  • 過去の結果を取得:「昨日のexample.com/breaking-newsの記事の感情履歴を見せて。」

  • サービス状態の自己診断:「SentiSift APIは準備完了か、それともモデルをロード中か?」

コードは不要です。アシスタントがMCPを通じてツールを呼び出し、結果を報告します。

Related MCP server: Semanticscholar Universal MCP Server

公開されているツール

ツール

説明

analyze_comments

コメントのバッチと記事URLを送信し、ボット/スパムフラグ、感情ラベル、商用コンテンツフラグ、モデレーションの要約、および(Pro/Enterprise版では)インテリジェンスとインターリーブされたInfluenceコメントを受け取ります。

get_balance

現在のコメント残高、ティア、機能フラグ、有効な助成金、サブスクリプション状態、Influence統計。

get_health

SentiSift APIが準備完了か、モデルをロード中かを確認します。

get_article_results

記事URLに対する過去のスコアリング済みコメント(Pro/Enterprise版は全履歴を保持。Free/Starter版はバッファ状態のみを返します)。

インストール

Python 3.10以上とSentiSift APIキーが必要です。無料キー(1,000コメント、クレジットカード不要)はsentisift.com/pricingで取得できます。

推奨: uvx (インストール不要、常に最新)

uvは、永続的なインストールなしで公開されたPythonアプリを実行します。これがインストール不要のパスです。

# One-time: install uv (mac/linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Verify it works (Ctrl-C after a few seconds; the server is meant to be
# launched by your AI host, not run in a terminal).
SENTISIFT_API_KEY=sk_sentisift_... uvx sentisift-mcp

代替手段: pip install

pip install sentisift-mcp
sentisift-mcp   # run manually to verify

ホストの設定

各AIホストには独自の構成ファイルがあります。該当するものを選んでください:

Claude Desktop

構成ファイルを編集します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

mcpServersにSentiSiftのエントリを追加します:

{
  "mcpServers": {
    "sentisift": {
      "command": "uvx",
      "args": ["sentisift-mcp"],
      "env": {
        "SENTISIFT_API_KEY": "sk_sentisift_your_key_here"
      }
    }
  }
}

Claude Desktopを再起動します。新しいチャットの左下に新しいツールのインジケーターが表示されるはずです。「SentiSiftを使って残高を確認して」と試してみてください。

Cursor

Cursorは設定 → MCPサーバーパネルからMCPをサポートしています。以下を追加してください:

  • 名前: sentisift

  • コマンド: uvx

  • 引数: sentisift-mcp

  • 環境変数: SENTISIFT_API_KEY=sk_sentisift_your_key_here

または、Claude Desktopの例と同じ構造で ~/.cursor/mcp.json を直接編集してください。

VS Code (MCP拡張機能を使用)

ユーザーまたはワークスペースの settings.json を編集します:

{
  "mcp.servers": {
    "sentisift": {
      "command": "uvx",
      "args": ["sentisift-mcp"],
      "env": {
        "SENTISIFT_API_KEY": "sk_sentisift_your_key_here"
      }
    }
  }
}

Continue.dev

~/.continue/config.json 内:

{
  "mcpServers": [
    {
      "name": "sentisift",
      "command": "uvx",
      "args": ["sentisift-mcp"],
      "env": {
        "SENTISIFT_API_KEY": "sk_sentisift_your_key_here"
      }
    }
  ]
}

その他のMCP互換ホスト

このサーバーはstdio経由でMCPと通信します。ホストを uvx sentisift-mcp(pip経由でインストールした場合は sentisift-mcp)に向け、環境変数に SENTISIFT_API_KEY を設定してください。

アシスタントとの対話方法

設定が完了すると、自然言語でのプロンプトが機能します。例:

「SentiSiftの残高を確認して。」

「https://example.com/breaking-story の記事について、これら20件のコメントをSentiSiftで実行して。コメントは以下の通り:」 (貼り付け)

「SentiSift APIは今すぐ使える状態か、それともまだロード中か?」

「SentiSiftから https://example.com/article-42 の処理済みコメントを取得して。」

アシスタントが適切なツールを選択し、正しい引数を渡し、結果を要約します。呼び出しが失敗した場合、エラーレスポンスには関連するドキュメントセクションへのディープリンクが含まれるため、アシスタントが自己修正できます。

プライバシー

  • サーバーは sentisift-mcp/<version> として識別される User-Agent ヘッダーを送信するため、利用ログにおいてMCPトラフィックと直接SDKトラフィックを区別できます。その他のテレメトリは送信されません。

  • サーバーはローカルマシン上で実行されます。api.sentisift.com への呼び出しのみを行います。

  • APIキーはマシン上(ホストの環境設定内)に留まります。このサーバーによってディスクにログ記録されることはありません。

ソース

ソースおよび課題追跡: gitlab.com/pickel-fintech/sentisift-sdks。

リンク

ライセンス

MIT — LICENSEを参照してください。このクライアントが呼び出すSentiSift APIサービスは、sentisift.com/terms.htmlによって個別に管理されています。APIの使用には sentisift.com/pricing からのAPIキーが必要です。

Available Tools

4 tools
analyze_commentsA

Submit a batch of comments to SentiSift for moderation and analysis.

Returns a response with status='buffered' (accepted, not yet analyzed, nothing charged) or status='processed' (full analysis returned).

Processed responses include per-comment sentiment labels (Toxic, Negative, Neutral, Positive, Saccharine), bot/spam flags (the response 'comments' array has those removed), composite scores, and on Professional/Enterprise tiers, crowd-level 'intelligence' (discussion_themes, omega_ratio, sentiment_balance) plus interleaved Influence comments marked with is_influence=true.

Comments are buffered per article until a processing threshold is reached, then all accumulated comments are analyzed together. You are billed only when processing occurs.

Batch size caps: 50 comments per call on the Free tier, 2000 on paid tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_urlYesFull URL of the article the comments belong to (e.g. 'https://example.com/article/42'). Used to group comments and accumulate Intelligence. URLs are normalized server-side.
commentsYesArray of comment objects. Each must have 'text' (str), 'author' (str), and 'time' (ISO 8601 str). Optional fields: 'likes' (int), 'dislikes' (int), 'is_reply' (bool). If real author/time are unknown, synthesize stable placeholders (e.g. author='anonymous-1', time='2026-04-18T10:00:00').
article_textNoFull article body. STRONGLY RECOMMENDED on the first call for each article (we cache it and use it for contextual analysis and Influence generation). Skip on later calls for the same article URL.
titleNoArticle title, for the article profile.
toneNoBrand voice for Influence comments when applicable (e.g. 'professional and measured', 'warm and community-oriented'). Pro/Enterprise tiers only.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

The description discloses behavioral traits such as buffering comments per article, batch processing, billing only on processing, and response statuses. Since annotations are absent, the description carries full burden. It covers mutation aspects and pagination/caps but could mention rate limits or idempotency.

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

Conciseness3/5

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

The description is somewhat lengthy but front-loaded with the core action. It could be more concise by grouping status explanation and tier details. However, each sentence adds necessary information.

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

Completeness5/5

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

Given the tool's complexity (5 parameters, output schema present, buffering, billing, tier distinctions), the description is complete: it covers input, behavior, response structure, and usage caveats. No significant gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the article_url groups comments, comments array structure with required and optional fields, and recommendations for article_text. It also explains tone and title usage. This justifies a 4.

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 clearly states the tool submits comments for moderation and analysis, specifies the two possible response statuses, and details what processed responses include. It distinguishes from siblings by focusing on comment submission vs. retrieving results or checking balance.

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

Usage Guidelines5/5

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

The description explains when to use this tool (submitting comments for analysis), provides batch size caps per tier, recommends including article_text on first call, and implies alternative tools (get_article_results) for fetching results. It gives clear context on buffering and billing.

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

get_article_resultsA

Fetch already-processed, scored comments for an article URL.

Does NOT trigger new processing and does NOT generate Influence comments (Influence only appears in analyze_comments responses).

Tier behavior:

  • Free/Starter: returns the buffered state only (processed comments are delivered inline via analyze_comments).

  • Professional/Enterprise: returns the full scored history accumulated across batches.

Use this when the user asks for historical sentiment of an article already submitted previously, or to check how a discussion has evolved since the last analyze_comments call.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_urlYesFull URL of the article to retrieve processed results for.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations exist, so description must carry full burden. It discloses read-only nature (does NOT trigger new processing), tier-dependent result scope, and that Influence scores are absent. However, it does not mention response format, pagination, or data freshness beyond 'buffered state'.

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?

Well structured: one-line summary, then negation, then tier behavior, then usage guidance. Every sentence adds unique value. No redundancy or filler.

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

Completeness4/5

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

Given single parameter with 100% schema coverage, output schema exists (so return values need not be explained), and tool is a simple retrieval, the description is complete. Could mention rate limits or idempotency for extra safety, but not necessary.

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

Parameters4/5

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

Schema coverage is 100% (single param fully described). Description adds value by clarifying the parameter's role: 'Full URL of the article to retrieve processed results for' is redundant with schema. However, no additional semantic guidance needed as schema already clear.

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?

Verb 'fetch' plus specific resource 'already-processed, scored comments for an article URL'. Contrasts clearly with sibling analyze_comments by explaining what it does NOT do (no new processing, no Influence scores). Distinguishes from get_balance and get_health by focus on comments.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'when the user asks for historical sentiment of an article already submitted previously, or to check how a discussion has evolved since the last analyze_comments call.' Also explains when NOT to use: when Influence scores are needed (use analyze_comments). Tier behavior clarifies expectations.

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

get_balanceA

Return the current SentiSift balance, tier, usage counters, and subscription state.

Fields of interest:

  • comment_balance: remaining comments across all active grants (FIFO consumed)

  • tier: 'free', 'starter', 'professional', or 'enterprise'

  • features: which capabilities the current key unlocks (moderate, intelligence, influence)

  • comment_grants: active allocations with expiry dates

  • subscription: billing state ('active', 'cancelled', 'past_due') or null for free-tier keys

  • influence_stats: Influence generation history (if feature enabled)

Call this when the user asks about their balance, upcoming renewals, or whether a feature is available on their tier.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It details the returned fields (balance, tier, features, etc.) and their semantics (e.g., 'FIFO consumed', 'or null for free-tier keys'), which is sufficient for a read-only query. However, it does not mention side effects or edge cases like rate limits or caching, which would be desirable.

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?

The description is well-structured with a lead sentence and bulleted details for fields. It is informative but slightly longer than necessary; the field list could be more concise. Overall, it's clear and front-loaded.

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

Completeness5/5

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

Given that the tool has zero parameters and an output schema likely defines the structure, the description provides sufficient context for an agent to understand what is returned and when to use it. No gaps are apparent for this use case.

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

Parameters5/5

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

The input schema has no parameters, and the description provides rich semantics about what each field in the output means. Since schema coverage is 100% (0 params), the description adds value by explaining the return values beyond schema constraints.

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 starts with a clear verb 'Return' and specifies the resource 'SentiSift balance, tier, usage counters, and subscription state'. It also lists sibling tools like 'analyze_comments' and 'get_health', and this tool's purpose is distinct from them, as it focuses on account details.

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

Usage Guidelines5/5

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

The description explicitly states when to call this tool: 'when the user asks about their balance, upcoming renewals, or whether a feature is available on their tier'. This provides clear context and implies when not to use it (e.g., for other queries), though no alternative tools are named for those cases.

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

get_healthA

Check if the SentiSift service is ready to handle requests.

Returns {'status': 'ready'} when models are loaded and requests will be served normally, or {'status': 'loading', 'progress': 0.4} during a cold start (usually 10-60 seconds after a restart).

Call this before a large batch analysis if response latency matters, or when diagnosing 'service appears slow' complaints. The analyze_comments tool handles transient loading states automatically with retries, so this is typically informational.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

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

Describes return values for both ready and loading states, including progress field. No annotations provided, so description carries full burden. Could mention potential rate limits or side effects, but as a read-only health check, this is sufficient.

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?

Concise, front-loaded with purpose, followed by a line explaining return format, and a final line with usage guidelines. Every sentence adds value.

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

Completeness5/5

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

Given zero parameters, no annotations, and an output schema existing, the description fully covers the tool's behavior and use cases. No gaps.

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

Parameters5/5

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

No parameters in schema; description adds no param info needed. Score baseline 4 for zero params, plus no extra detail required, so 5 is appropriate.

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?

Clearly states the tool checks if the SentiSift service is ready. Differentiates from siblings like analyze_comments, which handles transient states automatically.

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

Usage Guidelines5/5

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

Explicitly describes when to use: before large batch analysis if latency matters, or for diagnosing slowness. Notes analyze_comments handles loading automatically, so this is informational.

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 updates
    • First observedanalyze_comments
    • First observedget_article_results
    • First observedget_balance
    • First observedget_health

TDQS

A4.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool addresses a distinct concern: submission/analysis, balance/account state, service health, and historical results. There is no overlap between analyze_comments and get_article_results because the former is for new submissions while the latter retrieves past processed data. Even get_balance and get_health are clearly separated by purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (analyze_comments, get_balance, get_health, get_article_results). The verbs ('analyze', 'get') and nouns ('comments', 'balance', 'health', 'article_results') are uniformly descriptive and predictable. This makes it easy for an agent to infer functionality from the name alone.

Tool Count5/5

With only 4 tools, the server is tightly scoped to its core functionality: analyzing comments, checking balance, checking health, and retrieving results. This is not too thin for a specialized moderation service; each tool covers a necessary operation without redundancy. The small count reduces ambiguity and helps agents avoid over-selection.

Completeness4/5

The key operations for the stated purpose (sentiment analysis and moderation) are covered: submit and get processed results, fetch historical results, check account status, and verify service readiness. The only minor gap is the lack of a tool to manage or modify existing submissions (e.g., reprocess or delete), but that is not a typical requirement for this domain. Overall, agents can complete primary workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to Sentiment402 market sentiment data for global markets, crypto, TradFi, and specific assets, with built-in support for x402 micropayment protocol when API responses require payment.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides sentiment analysis with emotion detection, confidence scores, and key phrase extraction for single texts or batches up to 20, using pay-per-call via x402 micropayments (USDC on Base L2).
    MIT