mcpField
S
Sensitive Lexicon Mcp

Sensitive Lexicon Mcp

ローカル
github.com/zephyrpersonalAI・エージェント962 週間前に更新

Sensitive Lexicon Mcp について

Sensitive Lexicon Mcpは、Sensitive-lexiconの語彙データを使って敏感語を検出・フィルタリングするMCPサーバーです。LLMのコンテンツ確認やテキスト処理向けで、分類別の処理とGitHubからの語彙更新に対応します。

主な機能

  1. 01テキスト内の敏感語検出
  2. 02分類別の語句置換とフィルタリング
  3. 03利用可能な分類の一覧
  4. 04語彙データ内の語数確認
  5. 05GitHubからの語彙更新取得

活用シーン

  1. 01ユーザー投稿の内容確認
  2. 02指定分類の語句のマスキング
  3. 03文書やコードの一括チェック
  4. 04分類ごとの語数確認

MCP 対応

敏感語の検出とフィルタリング、分類一覧、語数確認のツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sensitive-lexicon": {
"command": "npx",
"args": [
"-y",
"sensitive-lexicon-mcp"
]
}
}
}
起動コマンドnpx -y sensitive-lexicon-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsensitive-lexicon-mcp

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
textstringはいセンシティブな単語をチェックするテキスト
categoriesarrayいいえ任意:チェックする特定のカテゴリ(例:["political", "violence"])

詳細

Sensitive Lexicon MCP Server

MCP Badge

Sensitive-lexicon のセンシティブワード辞書を基盤とする MCP(Model Context Protocol)サーバーです。LLM にセンシティブワードの検出とフィルタリング機能を提供します。

機能

  • センシティブワードの検出:テキスト内のセンシティブワードを検出します
  • センシティブワードのフィルタリング:テキスト内のセンシティブワードを置き換えます
  • 複数の分類に対応:政治、ポルノ、暴力、広告など、さまざまなセンシティブワードの分類に対応します
  • リアルタイム更新:GitHub リポジトリから最新のセンシティブワード辞書をリアルタイムで取得します
  • 簡単に統合可能:標準の MCP プロトコルを採用しており、さまざまな LLM と簡単に統合できます

クイックスタート

方法 1:NPM でインストール(推奨)
# 全局安装
npm install -g sensitive-lexicon-mcp

# 或项目本地安装
npm install sensitive-lexicon-mcp
方法 2:ソースからインストール
# 克隆项目
git clone https://github.com/zephyrpersonal/sensitive-lexicon-mcp.git
cd sensitive-lexicon-mcp

# 安装依赖
npm install

# 构建项目
npm run build

統合設定

Claude Desktop

Claude Desktop の設定ファイルに追加します:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "sensitive-lexicon": {
      "command": "npx",
      "args": ["sensitive-lexicon-mcp"]
    }
  }
}

ローカルにインストールした場合:

{
  "mcpServers": {
    "sensitive-lexicon": {
      "command": "node",
      "args": ["./path/to/sensitive-lexicon-mcp/dist/index.js"]
    }
  }
}
Continue.dev

config.json に追加します:

{
  "mcpServers": [
    {
      "name": "sensitive-lexicon",
      "command": "npx",
      "args": ["sensitive-lexicon-mcp"]
    }
  ]
}
Cline (VSCode Extension)

VS Code の設定に追加します:

{
  "cline.mcpServers": {
    "sensitive-lexicon": {
      "command": "npx",
      "args": ["sensitive-lexicon-mcp"]
    }
  }
}
Zed Editor

Zed の settings.json に追加します:

{
  "language_models": {
    "anthropic": {
      "version": "1",
      "api_url": "https://api.anthropic.com",
      "mcp_servers": {
        "sensitive-lexicon": {
          "command": "npx",
          "args": ["sensitive-lexicon-mcp"]
        }
      }
    }
  }
}
Cursor IDE

Cursor の設定に追加します:

{
  "mcp.servers": {
    "sensitive-lexicon": {
      "command": "npx",
      "args": ["sensitive-lexicon-mcp"]
    }
  }
}
カスタム MCP クライアント

カスタム MCP クライアントを使用する場合は、次のように接続できます:

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

const transport = new StdioClientTransport({
  command: 'npx',
  args: ['sensitive-lexicon-mcp']
});

const client = new Client({
  name: "sensitive-lexicon-client",
  version: "1.0.0"
}, {
  capabilities: {}
});

await client.connect(transport);
Python MCP クライアント
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="npx",
        args=["sensitive-lexicon-mcp"]
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # 初始化
            await session.initialize()
            
            # 调用工具
            result = await session.call_tool(
                "detect_sensitive_words", 
                {"text": "测试文本"}
            )
            print(result)
Docker によるデプロイ

Dockerfile を作成します:

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY dist ./dist

EXPOSE 3000

CMD ["npm", "start"]

コンテナを実行します:

docker build -t sensitive-lexicon-mcp .
docker run -p 3000:3000 sensitive-lexicon-mcp
環境変数の設定

環境変数を使って設定をカスタマイズできます:

# 设置敏感词库更新间隔(秒)
export SENSITIVE_UPDATE_INTERVAL=3600

# 设置缓存大小
export SENSITIVE_CACHE_SIZE=10000

# 启用调试日志
export DEBUG=sensitive-lexicon:*

利用可能なツール

1. detect_sensitive_words

テキスト内のセンシティブワードを検出します

パラメーター:

  • text(必須):検出対象のテキスト
  • categories(任意):検出する分類の配列を指定します

例:

{
  "text": "这是一段测试文本",
  "categories": ["political", "violence"]
}

戻り値:

{
  "isSensitive": true,
  "sensitiveWordsCount": 2,
  "sensitiveWords": [
    {"word": "敏感词1", "category": "political"},
    {"word": "敏感词2", "category": "violence"}
  ],
  "summary": "Found 2 sensitive word(s) in the text"
}
2. filter_sensitive_words

テキスト内のセンシティブワードをフィルタリングします

パラメーター:

  • text(必須):フィルタリング対象のテキスト
  • replacement(任意):置換文字列。デフォルトは "***" です
  • categories(任意):フィルタリングする分類の配列を指定します

例:

{
  "text": "这是一段测试文本",
  "replacement": "[已屏蔽]",
  "categories": ["political"]
}

戻り値:

{
  "originalText": "这是一段测试文本",
  "filteredText": "这是一段[已屏蔽]文本",
  "isSensitive": true,
  "sensitiveWordsFound": 1,
  "sensitiveWords": [
    {"word": "测试", "category": "political"}
  ]
}
3. get_categories

利用可能なセンシティブワードの分類一覧を取得します

戻り値:

{
  "categories": [
    "covid19", "gfw", "other", "subversive", 
    "advertisement", "political", "violence", 
    "livelihood", "weapons", "pornography-type", 
    "pornography", "supplementary", "corruption", 
    "tencent", "illegal-urls"
  ],
  "totalCategories": 15
}
4. get_word_count

センシティブワード辞書に登録されている語数を取得します

パラメーター:

  • category(任意):分類名を指定します

例:

{
  "category": "political"
}

戻り値:

{
  "category": "political",
  "wordCount": 1500
}

使用例

Claude Desktop での使用

設定が完了すると、Claude Desktop で直接使用できます:

请帮我检测这段文本是否包含敏感词:"这是一段需要检测的文本内容"
请帮我过滤这段文本中的敏感词,并用[已屏蔽]替换:"这是一段需要过滤的文本内容"
Continue.dev での使用

コードのコメントやドキュメント内のセンシティブワードを検出します:

// 检查这个变量名是否包含敏感词
@sensitive-check 检测这个函数名:getUserPoliticalInfo
プログラムへの統合
// Node.js 示例
const { spawn } = require('child_process');

function detectSensitiveWords(text) {
  return new Promise((resolve, reject) => {
    const child = spawn('npx', ['sensitive-lexicon-mcp']);
    
    child.stdin.write(JSON.stringify({
      method: 'tools/call',
      params: {
        name: 'detect_sensitive_words',
        arguments: { text }
      }
    }));
    
    child.stdout.on('data', (data) => {
      resolve(JSON.parse(data));
    });
    
    child.stderr.on('data', (data) => {
      reject(new Error(data.toString()));
    });
  });
}
一括処理の例
# Python 批量处理示例
import asyncio
import json
from mcp.client.stdio import stdio_client

async def batch_check_content(texts):
    server_params = StdioServerParameters(
        command="npx",
        args=["sensitive-lexicon-mcp"]
    )
    
    results = []
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            
            for text in texts:
                result = await session.call_tool(
                    "detect_sensitive_words",
                    {"text": text}
                )
                results.append({
                    "text": text,
                    "result": result
                })
    
    return results

# 使用示例
texts = ["文本1", "文本2", "文本3"]
results = asyncio.run(batch_check_content(texts))
for item in results:
    print(f"文本: {item['text']}")
    print(f"结果: {item['result']}")

センシティブワードの分類

以下のセンシティブワードの分類に対応しています:

  • covid19:COVID-19 関連
  • gfw:GFW 補足辞書
  • other:その他の辞書
  • subversive:反体制関連の辞書
  • advertisement:広告関連
  • political:政治関連
  • violence:暴力・テロ関連の辞書
  • livelihood:生活関連の辞書
  • weapons:銃器・爆発物関連
  • pornography-type:ポルノ関連
  • pornography:ポルノ辞書
  • supplementary:補足辞書
  • corruption:汚職関連の辞書
  • tencent:Tencent 関連
  • illegal-urls:違法 URL

開発

# 开发模式运行
npm run dev

# 类型检查
npm run type-check

# 构建
npm run build

技術スタック

  • TypeScript
  • Node.js
  • Model Context Protocol(MCP)SDK
  • Sensitive-lexicon センシティブワード辞書

ライセンス

MIT License

免責事項

本プロジェクトは、学習および研究のみを目的としています。使用にあたっては、現地の法令およびプラットフォームのポリシーを遵守してください。センシティブワードの定義は業務上の状況によって異なる場合があります。具体的なニーズに応じて調整してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。