/ الدليل / الملعب / Tree-sitter MCP
● مجتمع wrale ⚡ فوري

Tree-sitter MCP

بواسطة wrale · wrale/mcp-server-tree-sitter

Tree-sitter كـ MCP — أعطِ Claude وصولًا على مستوى AST حتى يعدّل دالة لا 47 تطابق regex عشوائيًا.

tree-sitter-mcp يُغلّف محللات Tree-sitter كأدوات MCP. بدلًا من مطالبة Claude بالبحث في الكود بـ grep، تعطيه get_function وlist_symbols وfind_calls. يستطيع الـ agent إجراء تعديلات جراحية على مستوى AST: 'أعِد تسمية تعريف الدالة فقط، لا النص الحرفي الذي يصادف المطابقة.'

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

tree-sitter-mcp.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "tree-sitter-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-tree-sitter"
      ]
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "tree-sitter-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-tree-sitter"
      ]
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "tree-sitter-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-tree-sitter"
      ]
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "tree-sitter-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-tree-sitter"
      ]
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "tree-sitter-mcp",
      "command": "uvx",
      "args": [
        "mcp-server-tree-sitter"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "tree-sitter-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-tree-sitter"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add tree-sitter-mcp -- uvx mcp-server-tree-sitter

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: Tree-sitter MCP

إعادة تسمية دالة دون إعادة تسمية نص مطابق بالمصادفة

👤 المطورون الذين يجرون إعادة هيكلة ⏱ ~15 min intermediate

متى تستخدمه: تريد إعادة تسمية validateTokenverifyToken دون إعادة تسمية وثيقة التوثيق التي تقول 'هذا يتحقق من token'.

الخطوات
  1. إيجاد التعريف
    Use tree-sitter MCP. Find the definition of validateToken — function only, ignore strings and comments.✓ تم النسخ
    → عقدة AST مع file:line ونوع العقدة 'function_definition'
  2. إيجاد المراجع
    Find all call sites of validateToken — only identifier-resolution matches.✓ تم النسخ
    → قائمة مراجع، لا إيجابيات كاذبة في النصوص الحرفية
  3. إعادة التسمية
    Rename to verifyToken everywhere it's a real reference. Show me the diff.✓ تم النسخ
    → diff مع N تغييرات في مواضع المعرّفات فقط

النتيجة: إعادة تسمية نظيفة لا تمس التعليقات أو النصوص الحرفية أو التوثيق.

المزالق
  • الإرسال الديناميكي / reflection يفوّت بعض الحالات — ادمج مع semble للاسترجاع الدلالي للاستخدامات الديناميكية
اجمعها مع: filesystem · semble-mcp

سحب جسم دالة محدد لإعادة هيكلة extract-method

👤 المهندسون الذين ينظّفون دوالًا طويلة ⏱ ~20 min intermediate

متى تستخدمه: تريد استخراج السطور 42-87 من دالة إلى مساعد — بشكل جراحي.

الخطوات
  1. التقطيع
    Show me the exact AST node for the for-loop at line 42 in handler.py.✓ تم النسخ
    → عقدة الحلقة مع نطاقات البايت
  2. الاستخراج
    Move that loop into a new function process_batch. Replace original with a call.✓ تم النسخ
    → diff إعادة الهيكلة يحترم المسافة البادئة والنطاق الأصليَّين

النتيجة: إعادة هيكلة تُصرَّف من أول مرة.

المزالق
  • المتغيرات المُلتقَطة لا تُرفَع إلى وسيطات — اطلب من Claude حصر المتغيرات الحرة قبل الاستخراج

حساب مقاييس التعقيد لكل ملف

👤 مديرو الهندسة / تدقيق الديون التقنية ⏱ ~25 min intermediate

متى تستخدمه: تحتاج خريطة نقاط ساخنة للكود المعقد.

الخطوات
  1. المسح
    For every .py file under src/, count function defs and rough cyclomatic complexity using AST.✓ تم النسخ
    → جدول لكل ملف
  2. الترتيب
    Top 10 most complex functions — report file, line, name, score.✓ تم النسخ
    → قائمة نقاط ساخنة مرتبة

النتيجة: قائمة انتظار إعادة هيكلة ذات أولويات.

المزالق
  • التعقيد الحلقي ≠ مقروئية — ادمج مع حكم المراجع؛ المقياس نقطة انطلاق

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

tree-sitter-mcp + semble-mcp

استرجاع دلالي (semble) + دقة هيكلية (tree-sitter)

Use semble to find probable call sites, then tree-sitter to verify each is a real identifier.✓ تم النسخ
tree-sitter-mcp + filesystem

قراءة النطاقات المشتقة من AST فقط

Tree-sitter the function range, then filesystem to dump the exact bytes.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
parse_file path الحصول على AST كامل للملف free
list_symbols path, kind? جرد المستوى الأعلى free
find_definition name, scope? تحديد مكان تعريف شيء free
find_references name إيجاد مواقع الاستدعاء لإعادة تسمية آمنة free
get_node path, byte_range or line_range تقطيع عقدة محددة لإعادة الهيكلة free

التكلفة والحدود

تكلفة التشغيل

حصة API
لا شيء — محلي
الرموز لكل استدعاء
100–1500
التكلفة المالية
مجاني
نصيحة
قطّع العقد، لا تفرغ الملفات كاملة

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: Local file read
تخزين بيانات الاعتماد: لا شيء
نقل البيانات الخارجي: لا شيء

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

Language not supported

أضف قواعد Tree-sitter النحوية ذات الصلة؛ راجع القائمة المدعومة في README

Parse errors on partial files

Tree-sitter يتعافى لكن يُعلّم عقد ERROR؛ تجاهلها أو أصلح الصيغة

Slow first run

تصريف القواعد النحوية يحدث مرة واحدة؛ التشغيلات اللاحقة سريعة

البدائل

Tree-sitter MCP مقابل البدائل

البديلمتى تستخدمهاالمقايضة
ast-grepتريد أداة بحث/استبدال هيكلية تُشغَّل أولًا من CLIتكامل أقل كـ MCP
Language servers (LSP)تحتاج حل نوع كامل، ليس فقط صيغةإعداد أثقل؛ خادم واحد لكل لغة

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills