Codex: Codex MCP
آخر تحديث: 2026-08-31
MCP (Model Context Protocol) هو جسر Codex إلى العالم الخارجي — قواعد البيانات، APIs، الخدمات السحابية، أنظمة التوثيق، والمزيد.
📋 المتطلبات المسبقة: فهم العمليات الأساسية لـ Codex والإعداد
1. ما ستتعلمه
- مفاهيم MCP وبنيته
- خوادم MCP المدمجة
- تكامل MCP المخصص
- سيناريوهات MCP الشائعة
2. ما هو MCP
MCP يرمز إلى Model Context Protocol، ويعرّف بروتوكولًا معياريًا لتواصل وكيل الذكاء الاصطناعي مع الأدوات الخارجية.
graph LR
A[Codex Agent] --> B[MCP Client]
B --> C[MCP Server: Database]
B --> D[MCP Server: GitHub]
B --> E[MCP Server: Documentation]
B --> F[MCP Server: Cloud Services]
| المفهوم | الوصف |
|---|---|
| MCP Server | خدمة توفر أدوات وبيانات |
| MCP Client | عميل Codex المدمج |
| Tool | عملية يكشفها الخادم |
| Resource | بيانات يوفرها الخادم |
3. خوادم MCP المدمجة
يتضمن Codex خوادم MCP شائعة الاستخدام:
| الخادم | الوظيفة | أمثلة الأدوات |
|---|---|---|
| filesystem | عمليات الملفات | read_file, write_file, list_dir |
| github | عمليات GitHub | create_pr, list_issues, review_pr |
| fetch | طلبات الشبكة | get_url, post_url |
| database | عمليات قاعدة البيانات | query, insert, update |
4. إعداد خوادم MCP
(1) الإعداد العام
JSON
{
"mcp_servers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxx"
}
}
}
}
(2) إعداد على مستوى المشروع
JSON
// .codex/mcp.json
{
"mcp_servers": {
"database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://localhost/mydb"
}
}
}
}
▶ مثال 1: أليس تتصل بقاعدة بيانات
JSON
// Alice's project MCP config
{
"mcp_servers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://localhost/ecommerce"
}
}
}
}
TEXT
📖 للعرض فقط
# Alice has Codex query the database
> Query the order count and total amount for the last 7 days
# Codex calls the database via MCP
→ Connected to postgres MCP server
→ Executing: SELECT COUNT(*), SUM(amount) FROM orders WHERE created_at > NOW() - INTERVAL '7 days'
→ Result: 1,234 orders, $89,567.89 total
5. سيناريوهات MCP الشائعة
(1) عمليات قاعدة البيانات
TEXT
📖 للعرض فقط
> View the structure of the users table
> Query the number of active users
> Create a database migration for the new feature
(2) تكامل GitHub
TEXT
📖 للعرض فقط
> List pending Issues
> Create a PR and link it to Issue #15
> View review comments on PR #42
(3) استعلام التوثيق
TEXT
📖 للعرض فقط
> Look up the API design doc in Notion
> Read the technical spec from Confluence
> Search the project Wiki for deployment guide
(4) عمليات الخدمات السحابية
TEXT
📖 للعرض فقط
> View AWS S3 bucket list
> Check CloudWatch alerts
> List EC2 instance status
▶ مثال 2: سير عمل MCP لبوب
TEXT
📖 للعرض فقط
# Bob uses MCP for data-driven development
> 1. Query the structure of the products table in the database
> 2. Create TypeScript type definitions based on the Schema
> 3. Generate CRUD API endpoints
> 4. Write integration tests
# Codex via MCP:
→ Connected to postgres MCP server
→ Reading products table schema...
→ Creating TypeScript types...
→ Generating API endpoints...
→ Writing integration tests...
→ All done ✓
6. خادم MCP مخصص
(1) إنشاء خادم MCP بسيط
TYPESCRIPT
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server({
name: "my-custom-server",
version: "1.0.0",
});
server.tool("search_docs", { query: { type: "string" } }, async ({ query }) => {
const results = await searchDocumentation(query);
return { content: [{ type: "text", text: JSON.stringify(results) }] };
});
const transport = new StdioServerTransport();
await server.connect(transport);
(2) التسجيل في Codex
JSON
{
"mcp_servers": {
"my-docs": {
"command": "node",
"args": ["/path/to/my-mcp-server.js"]
}
}
}
7. أمان MCP
| إجراء أمني | الوصف |
|---|---|
| التحكم في الأذونات | كل خادم MCP يكشف فقط الأدوات الضرورية |
| عزل البيئة | خوادم MCP تعمل في عمليات مستقلة |
| تسجيل التدقيق | تسجيل جميع استدعاءات أدوات MCP |
| القراءة فقط أولًا | قواعد البيانات والخدمات الحساسة تفضل الوصول للقراءة فقط |
❓ أسئلة شائعة
س ما الفرق بين MCP واستدعاءات API العادية؟
ج MCP هو بروتوكول معياري. يمكن لـ Codex اكتشاف واستخدام أدوات MCP تلقائيًا دون كتابة كود استدعاء API يدويًا. APIs العادية تتطلب تكاملًا يدويًا.
س ما قواعد البيانات التي يدعمها MCP؟
ج PostgreSQL، MySQL، SQLite، MongoDB، وقواعد بيانات رئيسية أخرى. المجتمع لديه خوادم MCP لمزيد من قواعد البيانات.
س هل إنشاء خادم MCP مخصص معقد؟
ج ليس كثيرًا. باستخدام MCP SDK، إنشاء خادم يتطلب بضعة عشرات من أسطر الكود فقط. العمل الرئيسي هو تنفيذ منطق الأدوات المحددة.
س هل يمكن لـ MCP كشف بيانات حساسة؟
ج يعتمد على الإعداد. يُوصى باستخدام حسابات قراءة فقط لـ MCP قاعدة البيانات، وتقييد نقاط النهاية القابلة للوصول لـ MCP API.
س هل يؤثر MCP على الأداء؟
ج كل خادم MCP هو عملية مستقلة مع تكلفة بدء التشغيل. الاستدعاء الأول أبطأ قليلًا؛ الاستدعاءات اللاحقة طبيعية.
📖 ملخص
- MCP هو البروتوكول المعياري لاتصال وكيل الذكاء الاصطناعي بالأدوات الخارجية
- الخوادم المدمجة: filesystem / github / fetch / database
- الإعداد: mcp.json عام أو على مستوى المشروع
- السيناريوهات: عمليات قاعدة البيانات، تكامل GitHub، استعلام التوثيق، الخدمات السحابية
- الأمان: تحكم في الأذونات، قراءة فقط أولًا، تسجيل تدقيق
📝 تمارين
- أساسي (⭐): إعداد خادم MCP (مثل filesystem)، اجعل Codex يستخدمه لعمليات الملفات.
- متوسط (⭐⭐): إعداد خادم MCP لقاعدة بيانات، اجعل Codex يستعلم عن البيانات ويولّد كود.
- متقدم (⭐⭐⭐): إنشاء خادم MCP مخصص يتصل بـ API الداخلي لشركتك.