Notion MCP
resmiAI ajanlarından Notion sayfaları, veritabanları ve çalışma alanı içeriğini aramak, okumak, oluşturmak ve güncellemek için resmi Notion MCP sunucusu.
Notion MCP ile neler yapabilirsiniz?
- Sorgu veri kaynakları — Asistanınızdan,
query-data-sourcekullanarak Notion veri kaynaklarını özel kriterlere göre filtrelemesini ve sıralamasını isteyin. - Sayfaları Markdown olarak okuyun —
retrieve-page-markdownile bir sayfanın tam içeriğini Markdown biçiminde alın; isteğe bağlı olarak toplantı transkriptlerini de dahil edin. - Sayfa içeriğini düzenleyin —
update-page-markdownile sayfa içeriğini Markdown kullanarak güncelleyin; ya her şeyi değiştirin ya da hedefli düzenlemeler yapın. - Veri kaynaklarını yönetin —
create-a-data-source,update-a-data-sourceveyaretrieve-a-data-sourcekullanarak veri kaynağı şemalarını ve meta verilerini oluşturun, güncelleyin veya alın. - Sayfaları taşıyın —
move-pageile sayfaları çalışma alanınız içinde farklı üst konumlara taşıyın. - Şablonları listeleyin — Sayfa oluşturmayı hızlandırmak için
list-data-source-templatesile bir veri kaynağındaki mevcut şablonları keşfedin.
Barındırılan MCP Sunucusu
npx add-mcp 'https://mcp.notion.com/mcp'Claude Code, Codex, Cursor ve daha fazlasına kurulur
Dokümantasyon
Notion MCP Sunucusu
[!NOTE]
En iyi deneyim için Remote Notion MCP kullanın; bu, resmi olarak barındırılan MCP sunucumuzdur. Bu depo, artık aktif olarak bakımı yapılmayan veya desteklenmeyen ayrı, kendi kendine barındırılan bir MCP sunucu uygulamasıdır. Lütfen bunun yerine Remote Notion MCP kullanın. Yapay zeka ajanlarına çok daha az token kullanarak daha hızlı sonuçlar vermek üzere özel olarak tasarlanmıştır.
Remote Notion MCP, çalışma alanınızda ve bağlı uygulamalarda anlamsal olarak arama yapabilir, sayfaları Markdown olarak okuyup düzenleyebilir ve yalnızca en alakalı bağlamı döndürebilir. Bu, daha az bekleme süresi, daha az bağlam penceresi kullanımı ve daha düşük token maliyeti anlamına gelir. Ayrıca OAuth kullanır ve her kullanıcının mevcut Notion izinlerine otomatik olarak saygı gösterir—API token'ları, JSON yapılandırması, manuel sayfa paylaşımı veya bakımı yapılacak yerel bir sunucu olmadan.
Özellik Remote Notion MCP Bu proje (yerel) Hızlı, barındırılan deneyim ✅ Yerel olarak çalışır ve güncellenir Token açısından verimli yanıtlar ✅ Sınırlı Yapay zeka ajanları için özel olarak tasarlanmış güçlü araçlar ✅ Temel API kaynaklı araçlar Notion çalışma alanınızda anlamsal arama ✅ Yalnızca anahtar kelime araması Bağlı uygulamalarda AI Bağlayıcı araması ✅ Kullanılamaz Markdown yerel sayfa okuma ve düzenleme ✅ İki sayfa içeriği aracıyla sınırlı Sorunsuz OAuth kurulumu ✅ Manuel token ve JSON yapılandırması Her kullanıcının mevcut Notion izinlerine saygı gösterir ✅ Manuel entegrasyon izinleri ve sayfa paylaşımı Aktif destek ve sürekli iyileştirmeler ✅ Aktif olarak desteklenmiyor Daha fazla bilgi edinin ve Remote Notion MCP dokümantasyonu ile başlayın.
Remote Notion MCP'ye öncelik veriyoruz ve yalnızca onun için aktif destek sağlıyoruz. Sonuç olarak:
- Bu yerel MCP sunucu deposunu gelecekte kullanımdan kaldırabiliriz.
- Buradaki sorunlar ve çekme istekleri aktif olarak izlenmemektedir.
- Lütfen uzak MCP ile ilgili sorunları buraya bildirmeyin; bunun yerine Notion desteğiyle iletişime geçin.
Bu proje, Notion API için bir MCP sunucusu uygular.
⚠️ Sürüm 2.0.0'da uyumsuzluk yaratan değişiklikler
Sürüm 2.0.0, veri kaynaklarını veritabanları için birincil soyutlama olarak tanıtan Notion API 2025-09-03'e geçiş yapar.
Neler değişti
Kaldırılan araçlar (3):
post-database-query- yeriniquery-data-sourcealdıupdate-a-database- yeriniupdate-a-data-sourcealdıcreate-a-database- yerinicreate-a-data-sourcealdı
Yeni araçlar (7):
query-data-source- Filtreler ve sıralamalarla bir veri kaynağını (veritabanını) sorgulayınretrieve-a-data-source- Bir veri kaynağının meta verilerini ve şemasını alınupdate-a-data-source- Veri kaynağı özelliklerini güncelleyincreate-a-data-source- Yeni bir veri kaynağı oluşturunlist-data-source-templates- Bir veri kaynağındaki mevcut şablonları listeleyinmove-page- Bir sayfayı farklı bir üst konuma taşıyınretrieve-a-database- Veri kaynağı kimlikleri dahil veritabanı meta verilerini alın
Parametre değişiklikleri:
- Tüm veritabanı işlemleri artık
database_idyerinedata_source_idkullanıyor - Arama filtresi değerleri
["page", "database"]yerine["page", "data_source"]olarak değiştirildi - Sayfa oluşturma artık hem
page_idhem dedatabase_idüst öğelerini (veri kaynakları için) destekliyor
Geçiş yapmam gerekiyor mu?
Kod değişikliği gerekmez. MCP araçları, sunucu başladığında otomatik olarak keşfedilir. v2.0.0'a yükselttiğinizde, yapay zeka istemcileri yeni araç adlarını ve parametrelerini otomatik olarak görecektir. Eski veritabanı araçları artık kullanılamaz.
Eski veritabanı araçlarına başvuran sabit kodlanmış araç adlarınız veya istemleriniz varsa, bunları yeni veri kaynağı araçlarını kullanacak şekilde güncelleyin:
| Eski Araç (v1.x) | Yeni Araç (v2.0) | Parametre Değişikliği |
|---|---|---|
post-database-query | query-data-source | database_id → data_source_id |
update-a-database | update-a-data-source | database_id → data_source_id |
create-a-database | create-a-data-source | Değişiklik yok (parent.page_id kullanır) |
Not:
retrieve-a-databasehâlâ kullanılabilir ve veri kaynağı kimliklerinin listesi dahil veritabanı meta verilerini döndürür. Belirli bir veri kaynağının şemasını ve özelliklerini almak içinretrieve-a-data-sourcekullanın.
Toplam araç sayısı artık: 22 (v1.x'te 19'du)
Sayfa içeriği Markdown olarak
Sunucu, blok JSON yerine gelişmiş Markdown olarak sayfa içeriğiyle çalışmak için iki araç sunar; bu, yapay zeka ajanları için önemli ölçüde daha token verimlidir:
retrieve-page-markdown— Bir sayfanın tüm içeriğini Markdown olarak okuyun (GET /v1/pages/{page_id}/markdown). Toplantı notu transkriptlerini satır içine almak içininclude_transcript: truedeğerini iletin.update-page-markdown— Bir sayfanın içeriğini Markdown ile düzenleyin (PATCH /v1/pages/{page_id}/markdown). Sayfanın tamamını üzerine yazmak içinreplace_contentkullanmayı veya hedefli bul-ve-değiştir düzenlemeleri içinupdate_contentkullanmayı tercih edin.
Bu uç noktalar, Notion API sürümü 2026-03-11 gerektirir. Sunucu artık Notion-Version başlığını OpenAPI spesifikasyonundan işlem başına alır; böylece bu araçlar 2026-03-11 kullanırken API'nin geri kalanı 2025-09-03 kullanmaya devam eder—yapılandırma gerekmez. Notion-Version değerini OPENAPI_MCP_HEADERS aracılığıyla kendiniz ayarlarsanız, değeriniz her araç için öncelik kazanır.
Kurulum
1. Notion'da entegrasyonu ayarlama
https://www.notion.so/profile/integrations adresine gidin ve yeni bir dahili entegrasyon oluşturun veya mevcut birini seçin.

Notion API'sinin kapsamını sınırlandırsak da (örneğin, MCP üzerinden veritabanlarını silemeyeceksiniz), çalışma alanı verilerini LLM'lere maruz bırakmanın sıfır olmayan bir riski vardır. Güvenlik bilincine sahip kullanıcılar, Entegrasyonun Yeteneklerini daha da yapılandırmak isteyebilir.
Örneğin, "Yapılandırma" sekmesinden yalnızca "Okuma içeriği" erişimi vererek salt okunur bir entegrasyon token'ı oluşturabilirsiniz:

2. İçeriği entegrasyona bağlama
İlgili sayfaların ve veritabanlarının entegrasyonunuza bağlı olduğundan emin olun.
Bunu yapmak için dahili entegrasyon ayarlarınızda Erişim sekmesini ziyaret edin. Erişimi düzenleyin ve kullanmak istediğiniz sayfaları seçin.


Alternatif olarak, sayfa erişimini tek tek de verebilirsiniz. Hedef sayfayı ziyaret etmeniz, 3 noktaya tıklamanız ve "Entegrasyona bağla" seçeneğini seçmeniz gerekir.

3. İstemcinize MCP yapılandırması ekleme
npm kullanarak
Cursor ve Claude
Aşağıdakileri .cursor/mcp.json veya claude_desktop_config.json dosyanıza ekleyin (MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json)
Seçenek 1: NOTION_TOKEN kullanma (önerilir)
{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "ntn_****"
}
}
}
}
Seçenek 2: OPENAPI_MCP_HEADERS kullanma (ileri düzey kullanım durumları için)
{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\" }"
}
}
}
}
Zed
Aşağıdakileri settings.json dosyanıza ekleyin
{
"context_servers": {
"some-context-server": {
"command": {
"path": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\" }"
}
},
"settings": {}
}
}
}
GitHub Copilot CLI
MCP sunucusunu etkileşimli olarak eklemek için Copilot CLI'yı kullanın:
/mcp add
Alternatif olarak, ~/.copilot/mcp-config.json yapılandırma dosyasını oluşturun veya düzenleyin ve şunu ekleyin:
{
"mcpServers": {
"notionApi": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "ntn_****"
}
}
}
}
Daha fazla bilgi için Copilot CLI dokümantasyonuna bakın.
Docker kullanarak
MCP sunucusunu Docker ile çalıştırmak için iki seçenek vardır:
Seçenek 1: Resmi Docker Hub görüntüsünü kullanma
Aşağıdakileri .cursor/mcp.json veya claude_desktop_config.json dosyanıza ekleyin
NOTION_TOKEN kullanma (önerilir):
{
"mcpServers": {
"notionApi": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "NOTION_TOKEN",
"mcp/notion"
],
"env": {
"NOTION_TOKEN": "ntn_****"
}
}
}
}
OPENAPI_MCP_HEADERS kullanma (ileri düzey kullanım durumları için):
{
"mcpServers": {
"notionApi": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "OPENAPI_MCP_HEADERS",
"mcp/notion"
],
"env": {
"OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_****\",\"Notion-Version\":\"2025-09-03\"}"
}
}
}
}
Bu yaklaşım:
- Resmi Docker Hub görüntüsünü kullanır
- Ortam değişkenleri aracılığıyla JSON kaçışını doğru şekilde işler
- Daha güvenilir bir yapılandırma yöntemi sağlar
Seçenek 2: Docker görüntüsünü yerel olarak oluşturma
Docker görüntüsünü yerel olarak da oluşturup çalıştırabilirsiniz. Önce Docker görüntüsünü oluşturun:
docker compose build
Ardından, aşağıdakileri .cursor/mcp.json veya claude_desktop_config.json dosyanıza ekleyin
NOTION_TOKEN kullanma (önerilir):
{
"mcpServers": {
"notionApi": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"NOTION_TOKEN=ntn_****",
"notion-mcp-server"
]
}
}
}
OPENAPI_MCP_HEADERS kullanma (ileri düzey kullanım durumları için):
{
"mcpServers": {
"notionApi": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2025-09-03\"}",
"notion-mcp-server"
]
}
}
}
ntn_**** değerini entegrasyon sırrınızla değiştirmeyi unutmayın. Entegrasyon yapılandırma sekmesinden bulabilirsiniz:
Taşıma (Transport) seçenekleri
Notion MCP Sunucusu iki taşıma modunu destekler:
STDIO taşıması (varsayılan)
Varsayılan taşıma modu, iletişim için standart girdi/çıktı kullanır. Bu, Claude Desktop gibi çoğu istemci tarafından kullanılan standart MCP taşımasıdır.
# Run with default stdio transport
npx @notionhq/notion-mcp-server
# Or explicitly specify stdio
npx @notionhq/notion-mcp-server --transport stdio
Akışkan HTTP taşıması
HTTP iletişimini tercih eden web tabanlı uygulamalar veya istemciler için Akışkan HTTP taşımasını kullanabilirsiniz:
# Run with Streamable HTTP transport on port 3000 (default)
npx @notionhq/notion-mcp-server --transport http
# Run on a custom port
npx @notionhq/notion-mcp-server --transport http --port 8080
# Bind to a different host. The default is 127.0.0.1.
npx @notionhq/notion-mcp-server --transport http --host 0.0.0.0
# Run with a custom authentication token
npx @notionhq/notion-mcp-server --transport http --auth-token "your-secret-token"
Akışkan HTTP taşımasını kullanırken sunucu varsayılan olarak http://127.0.0.1:<port>/mcp adresinde kullanılabilir olacaktır.
Kimlik doğrulama
Akışkan HTTP taşıması, güvenlik için taşıyıcı token kimlik doğrulaması gerektirir. Üç seçeneğiniz vardır:
Seçenek 1: Otomatik oluşturulan token (yalnızca geliştirme için)
npx @notionhq/notion-mcp-server --transport http
Sunucu güvenli bir rastgele token oluşturacak ve kısıtlı izinlere sahip bir dosyaya yazacaktır:
Generated auth token written to: /tmp/.notion-mcp-auth-token-12345
Seçenek 2: Komut satırı aracılığıyla özel token (üretim için önerilir)
npx @notionhq/notion-mcp-server --transport http --auth-token "your-secret-token"
Seçenek 3: Ortam değişkeni aracılığıyla özel token (üretim için önerilir)
AUTH_TOKEN="your-secret-token" npx @notionhq/notion-mcp-server --transport http
Komut satırı bağımsız değişkeni --auth-token, her ikisi de sağlanırsa AUTH_TOKEN ortam değişkenine göre öncelik kazanır.
Güvenli olmayan seçenek: HTTP kimlik doğrulamasını devre dışı bırakma
Taşıyıcı token kimlik doğrulamasını yalnızca açık güvenli olmayan bayrakla devre dışı bırakabilirsiniz:
npx @notionhq/notion-mcp-server --transport http --unsafe-disable-auth
UYARI: --unsafe-disable-auth güvenli değildir. Sunucu, DNS yeniden bağlama yoluyla ziyaret ettiğiniz sayfalara erişilebilir olabilir. Yalnızca izole bir ağda kullanın.
Kimlik doğrulama devre dışı bırakıldığında sunucu, Host ve Origin başlıklarını yapılandırılmış yerel ana bilgisayara ve geri döngü ana bilgisayarlarına karşı kontrol ederek DNS yeniden bağlama korumasını etkinleştirir. Önceki --disable-auth bayrağı hâlâ kullanımdan kaldırılmış bir takma ad olarak kabul edilir, ancak bir uyarı yazdırır.
HTTP istekleri yapma
Akışkan HTTP taşımasına yapılan tüm istekler, Authorization başlığında taşıyıcı token'ı içermelidir:
# Example request
curl -H "Authorization: Bearer your-token-here" \
-H "Content-Type: application/json" \
-H "mcp-session-id: your-session-id" \
-d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}' \
http://localhost:3000/mcp
Not: Her iki taşıma modunu kullanırken NOTION_TOKEN ortam değişkenini (önerilir) veya OPENAPI_MCP_HEADERS ortam değişkenini Notion entegrasyon token'ınızla ayarladığınızdan emin olun.
Birden çok entegrasyona hizmet etme (istek başına token geçişi)
Varsayılan olarak sunucu, Notion'a başlangıçta gömülü tek bir token ile kimlik doğrular; bu da bir dağıtımı tek bir Notion entegrasyonuna kilitler. Tek bir dağıtımın birden çok entegrasyona hizmet etmesine izin vermek için, her istemcinin kendi Notion entegrasyon token'ını bağlantı başına sağlaması için token geçişini etkinleştirin:
# Enable per-request Notion tokens (flag or ENABLE_TOKEN_PASSTHROUGH=true)
npx @notionhq/notion-mcp-server --transport http --enable-token-passthrough
İstemciler daha sonra Notion token'larını initialize isteğinde özel Notion-Token başlığını kullanarak gönderir:
curl -H "Authorization: Bearer <server-auth-token>" \
-H "Notion-Token: ntn_****" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}' \
http://localhost:3000/mcp
Her bağlantı için token'ın nasıl çözümlendiği, sırasıyla:
Notion-Tokenbaşlığı (tercih edilen—belirsiz değildir ve sunucunun kendiAuthorizationağ geçidi kimlik doğrulamasıyla birlikte çalışır). Varsa geçerli bir Notion token'ı olmalıdır, aksi takdirde istek401ile reddedilir.Authorization: Bearer ntn_****— yalnızca sunucunun kendi taşıyıcı kimlik doğrulaması kapatıldığında (--unsafe-disable-auth), böylece başlık Notion token'ını doğrudan taşımakta serbest kalır.- Aksi takdirde, ayarlanmışsa başlangıç ortam token'ı (
NOTION_TOKEN/OPENAPI_MCP_HEADERS), böylece geçiş ve varsayılan bir entegrasyon tek bir dağıtımda bir arada bulunabilir.
Notlar:
- Yalnızca Notion token önekine (
ntn_, eskisecret_) sahip değerler Notion token'ları olarak kabul edilir; böylece sunucunun ağ geçidi sırrı ile bir kiracının Notion token'ı asla çakışmaz. - Her token, kendi MCP oturumuna bağlıdır; token'lar asla günlüğe kaydedilmez (yalnızca gizlenmiş bir önek yayınlanır).
- Bu kasıtlı bir token geçiş kurulumudur. Her zaman TLS üzerinden dağıtın ve çok kiracılı trafiğin önünde bir ağ geçidi olarak sunucunun kendi taşıyıcı kimlik doğrulamasını (
--auth-token) etkin tutmayı tercih edin.
Örnekler
- Aşağıdaki talimatı kullanma
Comment "Hello MCP" on page "Getting started"
Yapay zeka, görevi gerçekleştirmek için v1/search ve v1/comments olmak üzere iki API çağrısını doğru şekilde planlayacaktır
- Benzer şekilde, aşağıdaki talimat, "Development" üst sayfasına eklenen "Notion MCP" adında yeni bir sayfayla sonuçlanacaktır
Add a page titled "Notion MCP" to page "Development"
- Ayrıca içerik kimliğine doğrudan da başvurabilirsiniz
Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2
Geliştirme
Derleme ve test
npm run build
npm test
Çalıştırma
npx -y --prefix /path/to/local/notion-mcp-server @notionhq/notion-mcp-server
Değişiklikleri Cursor'da yerel olarak test etme:
- Depo kök dizininden
npm linkkomutunu çalıştıraraknotion-mcp-serverpaketine makine genelinde bir sembolik bağlantı oluşturun. - Aşağıdaki yapılandırma parçasını Cursor'un
mcp.jsondosyasına (veya test etmek istediğiniz başka bir MCP istemcisine) ekleyin. - (Temizlik) Depo kök dizininden
npm unlinkkomutunu çalıştırın.
{
"mcpServers": {
"notion-local-package": {
"command": "notion-mcp-server",
"env": {
"NOTION_TOKEN": "ntn_..."
}
}
}
}
Yayınlama
npm login
npm publish --access public