#
tokens: 24410/50000 11/145 files (page 1/11)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 1 of 11. Use http://codebase.md/saidsurucu/yargi-mcp?lines=true&page={x} to view the full context.

# Directory Structure

```
├── __main__.py
├── .dockerignore
├── .env.example
├── .gitattributes
├── .github
│   └── workflows
│       └── publish.yml
├── .gitignore
├── .serena
│   ├── .gitignore
│   └── project.yml
├── 5ire-settings.png
├── analyze_kik_hash_generation.py
├── anayasa_mcp_module
│   ├── __init__.py
│   ├── bireysel_client.py
│   ├── client.py
│   ├── models.py
│   └── unified_client.py
├── asgi_app.py
├── bddk_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
├── bedesten_mcp_module
│   ├── __init__.py
│   ├── client.py
│   ├── enums.py
│   └── models.py
├── check_response_format.py
├── CLAUDE.md
├── danistay_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
├── docker-compose.yml
├── Dockerfile
├── docs
│   └── DEPLOYMENT.md
├── emsal_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
├── example_fastapi_app.py
├── fly-no-auth.toml
├── fly.toml
├── kik_mcp_module
│   ├── __init__.py
│   ├── client_v2.py
│   ├── client.py
│   ├── models_v2.py
│   └── models.py
├── kvkk_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
├── LICENSE
├── mcp_auth
│   ├── __init__.py
│   ├── clerk_config.py
│   ├── middleware.py
│   ├── oauth.py
│   ├── policy.py
│   └── storage.py
├── mcp_auth_factory.py
├── mcp_auth_http_adapter.py
├── mcp_auth_http_simple.py
├── mcp_server_main.py
├── nginx.conf
├── ornek.png
├── Procfile
├── pyproject.toml
├── railway.json
├── README.md
├── redis_session_store.py
├── rekabet_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
├── requirements.txt
├── run_asgi.py
├── saidsurucu-yargi-mcp-f5fa007
│   ├── __main__.py
│   ├── .dockerignore
│   ├── .env.example
│   ├── .gitattributes
│   ├── .github
│   │   └── workflows
│   │       └── publish.yml
│   ├── .gitignore
│   ├── 5ire-settings.png
│   ├── anayasa_mcp_module
│   │   ├── __init__.py
│   │   ├── bireysel_client.py
│   │   ├── client.py
│   │   ├── models.py
│   │   └── unified_client.py
│   ├── asgi_app.py
│   ├── bddk_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── bedesten_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── enums.py
│   │   └── models.py
│   ├── check_response_format.py
│   ├── danistay_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── docker-compose.yml
│   ├── Dockerfile
│   ├── docs
│   │   └── DEPLOYMENT.md
│   ├── emsal_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── example_fastapi_app.py
│   ├── kik_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── kvkk_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── LICENSE
│   ├── mcp_auth
│   │   ├── __init__.py
│   │   ├── clerk_config.py
│   │   ├── middleware.py
│   │   ├── oauth.py
│   │   ├── policy.py
│   │   └── storage.py
│   ├── mcp_auth_factory.py
│   ├── mcp_auth_http_adapter.py
│   ├── mcp_auth_http_simple.py
│   ├── mcp_server_main.py
│   ├── nginx.conf
│   ├── ornek.png
│   ├── Procfile
│   ├── pyproject.toml
│   ├── railway.json
│   ├── README.md
│   ├── redis_session_store.py
│   ├── rekabet_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   ├── run_asgi.py
│   ├── sayistay_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   ├── enums.py
│   │   ├── models.py
│   │   └── unified_client.py
│   ├── starlette_app.py
│   ├── stripe_webhook.py
│   ├── uyusmazlik_mcp_module
│   │   ├── __init__.py
│   │   ├── client.py
│   │   └── models.py
│   └── yargitay_mcp_module
│       ├── __init__.py
│       ├── client.py
│       └── models.py
├── sayistay_mcp_module
│   ├── __init__.py
│   ├── client.py
│   ├── enums.py
│   ├── models.py
│   └── unified_client.py
├── starlette_app.py
├── stripe_webhook.py
├── uv.lock
├── uyusmazlik_mcp_module
│   ├── __init__.py
│   ├── client.py
│   └── models.py
└── yargitay_mcp_module
    ├── __init__.py
    ├── client.py
    └── models.py
```

# Files

--------------------------------------------------------------------------------
/.serena/.gitignore:
--------------------------------------------------------------------------------

```
1 | /cache
2 | 
```

--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------

```
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 | 
```

--------------------------------------------------------------------------------
/saidsurucu-yargi-mcp-f5fa007/.gitattributes:
--------------------------------------------------------------------------------

```
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 | 
```

--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------

```
  1 | # flyctl launch added from .gitignore
  2 | # Byte-compiled / optimized / DLL files
  3 | **/__pycache__
  4 | **/*.py[cod]
  5 | **/*$py.class
  6 | 
  7 | # C extensions
  8 | **/*.so
  9 | 
 10 | # Distribution / packaging
 11 | **/.Python
 12 | **/build
 13 | **/develop-eggs
 14 | **/dist
 15 | **/downloads
 16 | **/eggs
 17 | **/.eggs
 18 | **/lib
 19 | **/lib64
 20 | **/parts
 21 | **/sdist
 22 | **/var
 23 | **/wheels
 24 | **/share/python-wheels
 25 | **/*.egg-info
 26 | **/.installed.cfg
 27 | **/*.egg
 28 | **/MANIFEST
 29 | 
 30 | # PyInstaller
 31 | #  Usually these files are written by a python script from a template
 32 | #  before PyInstaller builds the exe, so as to inject date/other infos into it.
 33 | **/*.manifest
 34 | **/*.spec
 35 | 
 36 | # Installer logs
 37 | **/pip-log.txt
 38 | **/pip-delete-this-directory.txt
 39 | 
 40 | # Unit test / coverage reports
 41 | **/htmlcov
 42 | **/.tox
 43 | **/.nox
 44 | **/.coverage
 45 | **/.coverage.*
 46 | **/.cache
 47 | **/nosetests.xml
 48 | **/coverage.xml
 49 | **/*.cover
 50 | **/*.py,cover
 51 | **/.hypothesis
 52 | **/.pytest_cache
 53 | **/cover
 54 | 
 55 | # Translations
 56 | **/*.mo
 57 | **/*.pot
 58 | 
 59 | # Django stuff:
 60 | **/*.log
 61 | **/local_settings.py
 62 | **/db.sqlite3
 63 | **/db.sqlite3-journal
 64 | 
 65 | # Flask stuff:
 66 | **/instance
 67 | **/.webassets-cache
 68 | 
 69 | # Scrapy stuff:
 70 | **/.scrapy
 71 | 
 72 | # Sphinx documentation
 73 | **/docs/_build
 74 | 
 75 | # PyBuilder
 76 | **/.pybuilder
 77 | **/target
 78 | 
 79 | # Jupyter Notebook
 80 | **/.ipynb_checkpoints
 81 | 
 82 | # IPython
 83 | **/profile_default
 84 | **/ipython_config.py
 85 | 
 86 | # pyenv
 87 | #   For a library or package, you might want to ignore these files since the code is
 88 | #   intended to run in multiple environments; otherwise, check them in:
 89 | # .python-version
 90 | 
 91 | # pipenv
 92 | #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
 93 | #   However, in case of collaboration, if having platform-specific dependencies or dependencies
 94 | #   having no cross-platform support, pipenv may install dependencies that don't work, or not
 95 | #   install all needed dependencies.
 96 | #Pipfile.lock
 97 | 
 98 | # poetry
 99 | #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
100 | #   This is especially recommended for binary packages to ensure reproducibility, and is more
101 | #   commonly ignored for libraries.
102 | #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
103 | #poetry.lock
104 | 
105 | # pdm
106 | #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
107 | #pdm.lock
108 | #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
109 | #   in version control.
110 | #   https://pdm.fming.dev/#use-with-ide
111 | **/.pdm.toml
112 | 
113 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
114 | **/__pypackages__
115 | 
116 | # Celery stuff
117 | **/celerybeat-schedule
118 | **/celerybeat.pid
119 | 
120 | # SageMath parsed files
121 | **/*.sage.py
122 | 
123 | # Environments
124 | **/.env
125 | **/.venv
126 | **/env
127 | **/venv
128 | **/ENV
129 | **/env.bak
130 | **/venv.bak
131 | 
132 | # Spyder project settings
133 | **/.spyderproject
134 | **/.spyproject
135 | 
136 | # Rope project settings
137 | **/.ropeproject
138 | 
139 | # mkdocs documentation
140 | site
141 | 
142 | # mypy
143 | **/.mypy_cache
144 | **/.dmypy.json
145 | **/dmypy.json
146 | 
147 | # Pyre type checker
148 | **/.pyre
149 | 
150 | # pytype static type analyzer
151 | **/.pytype
152 | 
153 | # Cython debug symbols
154 | **/cython_debug
155 | 
156 | # PyCharm
157 | #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
158 | #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
159 | #  and can be added to the global gitignore or merged into this file.  For a more nuclear
160 | #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
161 | #.idea/
162 | **/.DS_Store
163 | **/hello.py
164 | 
165 | **/*.html
166 | **/fast-mcp-docs.md
167 | 
168 | # Debug and test files
169 | **/debug_*
170 | **/test_*
171 | **/CLAUDE.md
172 | 
173 | # ASGI/Deployment files
174 | **/ssl
175 | **/*.pem
176 | **/*.key
177 | **/*.crt
178 | 
179 | # Docker volumes
180 | **/redis-data
181 | 
182 | # Production logs
183 | **/logs/*.log.*
184 | **/Dockerfile
185 | **/Dockerfile
186 | fly.toml
187 | 
```

--------------------------------------------------------------------------------
/saidsurucu-yargi-mcp-f5fa007/.dockerignore:
--------------------------------------------------------------------------------

```
  1 | # flyctl launch added from .gitignore
  2 | # Byte-compiled / optimized / DLL files
  3 | **/__pycache__
  4 | **/*.py[cod]
  5 | **/*$py.class
  6 | 
  7 | # C extensions
  8 | **/*.so
  9 | 
 10 | # Distribution / packaging
 11 | **/.Python
 12 | **/build
 13 | **/develop-eggs
 14 | **/dist
 15 | **/downloads
 16 | **/eggs
 17 | **/.eggs
 18 | **/lib
 19 | **/lib64
 20 | **/parts
 21 | **/sdist
 22 | **/var
 23 | **/wheels
 24 | **/share/python-wheels
 25 | **/*.egg-info
 26 | **/.installed.cfg
 27 | **/*.egg
 28 | **/MANIFEST
 29 | 
 30 | # PyInstaller
 31 | #  Usually these files are written by a python script from a template
 32 | #  before PyInstaller builds the exe, so as to inject date/other infos into it.
 33 | **/*.manifest
 34 | **/*.spec
 35 | 
 36 | # Installer logs
 37 | **/pip-log.txt
 38 | **/pip-delete-this-directory.txt
 39 | 
 40 | # Unit test / coverage reports
 41 | **/htmlcov
 42 | **/.tox
 43 | **/.nox
 44 | **/.coverage
 45 | **/.coverage.*
 46 | **/.cache
 47 | **/nosetests.xml
 48 | **/coverage.xml
 49 | **/*.cover
 50 | **/*.py,cover
 51 | **/.hypothesis
 52 | **/.pytest_cache
 53 | **/cover
 54 | 
 55 | # Translations
 56 | **/*.mo
 57 | **/*.pot
 58 | 
 59 | # Django stuff:
 60 | **/*.log
 61 | **/local_settings.py
 62 | **/db.sqlite3
 63 | **/db.sqlite3-journal
 64 | 
 65 | # Flask stuff:
 66 | **/instance
 67 | **/.webassets-cache
 68 | 
 69 | # Scrapy stuff:
 70 | **/.scrapy
 71 | 
 72 | # Sphinx documentation
 73 | **/docs/_build
 74 | 
 75 | # PyBuilder
 76 | **/.pybuilder
 77 | **/target
 78 | 
 79 | # Jupyter Notebook
 80 | **/.ipynb_checkpoints
 81 | 
 82 | # IPython
 83 | **/profile_default
 84 | **/ipython_config.py
 85 | 
 86 | # pyenv
 87 | #   For a library or package, you might want to ignore these files since the code is
 88 | #   intended to run in multiple environments; otherwise, check them in:
 89 | # .python-version
 90 | 
 91 | # pipenv
 92 | #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
 93 | #   However, in case of collaboration, if having platform-specific dependencies or dependencies
 94 | #   having no cross-platform support, pipenv may install dependencies that don't work, or not
 95 | #   install all needed dependencies.
 96 | #Pipfile.lock
 97 | 
 98 | # poetry
 99 | #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
100 | #   This is especially recommended for binary packages to ensure reproducibility, and is more
101 | #   commonly ignored for libraries.
102 | #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
103 | #poetry.lock
104 | 
105 | # pdm
106 | #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
107 | #pdm.lock
108 | #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
109 | #   in version control.
110 | #   https://pdm.fming.dev/#use-with-ide
111 | **/.pdm.toml
112 | 
113 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
114 | **/__pypackages__
115 | 
116 | # Celery stuff
117 | **/celerybeat-schedule
118 | **/celerybeat.pid
119 | 
120 | # SageMath parsed files
121 | **/*.sage.py
122 | 
123 | # Environments
124 | **/.env
125 | **/.venv
126 | **/env
127 | **/venv
128 | **/ENV
129 | **/env.bak
130 | **/venv.bak
131 | 
132 | # Spyder project settings
133 | **/.spyderproject
134 | **/.spyproject
135 | 
136 | # Rope project settings
137 | **/.ropeproject
138 | 
139 | # mkdocs documentation
140 | site
141 | 
142 | # mypy
143 | **/.mypy_cache
144 | **/.dmypy.json
145 | **/dmypy.json
146 | 
147 | # Pyre type checker
148 | **/.pyre
149 | 
150 | # pytype static type analyzer
151 | **/.pytype
152 | 
153 | # Cython debug symbols
154 | **/cython_debug
155 | 
156 | # PyCharm
157 | #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
158 | #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
159 | #  and can be added to the global gitignore or merged into this file.  For a more nuclear
160 | #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
161 | #.idea/
162 | **/.DS_Store
163 | **/hello.py
164 | 
165 | **/*.html
166 | **/fast-mcp-docs.md
167 | 
168 | # Debug and test files
169 | **/debug_*
170 | **/test_*
171 | **/CLAUDE.md
172 | 
173 | # ASGI/Deployment files
174 | **/ssl
175 | **/*.pem
176 | **/*.key
177 | **/*.crt
178 | 
179 | # Docker volumes
180 | **/redis-data
181 | 
182 | # Production logs
183 | **/logs/*.log.*
184 | **/Dockerfile
185 | **/Dockerfile
186 | fly.toml
187 | 
```

--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------

```
  1 | # OAuth Configuration for Clerk + Google
  2 | # Copy this file to .env and fill in your actual values
  3 | 
  4 | # =============================================================================
  5 | # AUTHENTICATION SETTINGS
  6 | # =============================================================================
  7 | 
  8 | # Enable/disable authentication (set to "true" to enable OAuth)
  9 | ENABLE_AUTH=false
 10 | 
 11 | # =============================================================================
 12 | # CLERK CONFIGURATION
 13 | # =============================================================================
 14 | 
 15 | # Clerk API keys (get from https://dashboard.clerk.com/)
 16 | CLERK_SECRET_KEY=sk_test_your_secret_key_here
 17 | CLERK_PUBLISHABLE_KEY=pk_test_your_publishable_key_here
 18 | 
 19 | # OAuth Redirect URLs
 20 | CLERK_OAUTH_REDIRECT_URL=http://localhost:8000/auth/callback
 21 | CLERK_FRONTEND_URL=http://localhost:3000
 22 | 
 23 | # Clerk domain issuer (usually auto-configured)
 24 | CLERK_ISSUER=https://your-clerk-domain.clerk.accounts.dev
 25 | CLERK_DOMAIN=your-clerk-domain
 26 | 
 27 | # =============================================================================
 28 | # GOOGLE OAUTH SETTINGS
 29 | # =============================================================================
 30 | # Note: Google OAuth is configured through Clerk dashboard
 31 | # You need to:
 32 | # 1. Go to Clerk Dashboard > Social Connections
 33 | # 2. Enable Google provider
 34 | # 3. Add your Google OAuth client ID and secret
 35 | # 4. Configure redirect URIs in Google Console
 36 | 
 37 | # =============================================================================
 38 | # STRIPE CONFIGURATION (for payments/subscriptions)
 39 | # =============================================================================
 40 | 
 41 | STRIPE_SECRET=sk_test_your_stripe_secret_key_here
 42 | STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
 43 | 
 44 | # =============================================================================
 45 | # SERVER CONFIGURATION
 46 | # =============================================================================
 47 | 
 48 | # CORS origins (comma-separated list)
 49 | ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8000,https://yourdomain.com
 50 | 
 51 | # Server settings
 52 | HOST=0.0.0.0
 53 | PORT=8000
 54 | LOG_LEVEL=info
 55 | 
 56 | # Base URL for the application (used for OAuth callbacks and API URLs)
 57 | BASE_URL=http://localhost:8000
 58 | 
 59 | # JWT Secret for MCP token generation
 60 | JWT_SECRET_KEY=your_jwt_secret_key_here
 61 | 
 62 | # =============================================================================
 63 | # MCP SERVER SETTINGS
 64 | # =============================================================================
 65 | 
 66 | # Additional MCP server configuration can go here
 67 | # For example, rate limiting, feature flags, etc.
 68 | 
 69 | # Example: Rate limiting
 70 | # MAX_REQUESTS_PER_MINUTE=60
 71 | # BURST_CAPACITY=20
 72 | 
 73 | # =============================================================================
 74 | # USAGE INSTRUCTIONS
 75 | # =============================================================================
 76 | 
 77 | # 1. Copy this file to .env:
 78 | #    cp .env.example .env
 79 | 
 80 | # 2. Get Clerk credentials:
 81 | #    - Sign up at https://clerk.com/
 82 | #    - Create a new application
 83 | #    - Go to API Keys tab
 84 | #    - Copy Secret Key and Publishable Key
 85 | 
 86 | # 3. Configure Google OAuth in Clerk:
 87 | #    - In Clerk Dashboard, go to Social Connections
 88 | #    - Enable Google provider
 89 | #    - Get Google OAuth credentials from Google Console
 90 | #    - Add redirect URI: http://localhost:8000/auth/callback
 91 | 
 92 | # 4. Update OAuth URLs:
 93 | #    - Set CLERK_OAUTH_REDIRECT_URL to your callback URL
 94 | #    - Set CLERK_FRONTEND_URL to your frontend application URL
 95 | 
 96 | # 5. Enable authentication:
 97 | #    - Set ENABLE_AUTH=true
 98 | 
 99 | # 6. Test the OAuth flow:
100 | #    - Start server: uvicorn asgi_app:app --reload
101 | #    - Visit: http://localhost:8000/auth/login
102 | #    - Complete OAuth flow with Google
103 | #    - Check: http://localhost:8000/auth/user
```

--------------------------------------------------------------------------------
/saidsurucu-yargi-mcp-f5fa007/.env.example:
--------------------------------------------------------------------------------

```
  1 | # OAuth Configuration for Clerk + Google
  2 | # Copy this file to .env and fill in your actual values
  3 | 
  4 | # =============================================================================
  5 | # AUTHENTICATION SETTINGS
  6 | # =============================================================================
  7 | 
  8 | # Enable/disable authentication (set to "true" to enable OAuth)
  9 | ENABLE_AUTH=false
 10 | 
 11 | # =============================================================================
 12 | # CLERK CONFIGURATION
 13 | # =============================================================================
 14 | 
 15 | # Clerk API keys (get from https://dashboard.clerk.com/)
 16 | CLERK_SECRET_KEY=sk_test_your_secret_key_here
 17 | CLERK_PUBLISHABLE_KEY=pk_test_your_publishable_key_here
 18 | 
 19 | # OAuth Redirect URLs
 20 | CLERK_OAUTH_REDIRECT_URL=http://localhost:8000/auth/callback
 21 | CLERK_FRONTEND_URL=http://localhost:3000
 22 | 
 23 | # Clerk domain issuer (usually auto-configured)
 24 | CLERK_ISSUER=https://your-clerk-domain.clerk.accounts.dev
 25 | CLERK_DOMAIN=your-clerk-domain
 26 | 
 27 | # =============================================================================
 28 | # GOOGLE OAUTH SETTINGS
 29 | # =============================================================================
 30 | # Note: Google OAuth is configured through Clerk dashboard
 31 | # You need to:
 32 | # 1. Go to Clerk Dashboard > Social Connections
 33 | # 2. Enable Google provider
 34 | # 3. Add your Google OAuth client ID and secret
 35 | # 4. Configure redirect URIs in Google Console
 36 | 
 37 | # =============================================================================
 38 | # STRIPE CONFIGURATION (for payments/subscriptions)
 39 | # =============================================================================
 40 | 
 41 | STRIPE_SECRET=sk_test_your_stripe_secret_key_here
 42 | STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
 43 | 
 44 | # =============================================================================
 45 | # SERVER CONFIGURATION
 46 | # =============================================================================
 47 | 
 48 | # CORS origins (comma-separated list)
 49 | ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8000,https://yourdomain.com
 50 | 
 51 | # Server settings
 52 | HOST=0.0.0.0
 53 | PORT=8000
 54 | LOG_LEVEL=info
 55 | 
 56 | # Base URL for the application (used for OAuth callbacks and API URLs)
 57 | BASE_URL=http://localhost:8000
 58 | 
 59 | # JWT Secret for MCP token generation
 60 | JWT_SECRET_KEY=your_jwt_secret_key_here
 61 | 
 62 | # =============================================================================
 63 | # MCP SERVER SETTINGS
 64 | # =============================================================================
 65 | 
 66 | # Additional MCP server configuration can go here
 67 | # For example, rate limiting, feature flags, etc.
 68 | 
 69 | # Example: Rate limiting
 70 | # MAX_REQUESTS_PER_MINUTE=60
 71 | # BURST_CAPACITY=20
 72 | 
 73 | # =============================================================================
 74 | # USAGE INSTRUCTIONS
 75 | # =============================================================================
 76 | 
 77 | # 1. Copy this file to .env:
 78 | #    cp .env.example .env
 79 | 
 80 | # 2. Get Clerk credentials:
 81 | #    - Sign up at https://clerk.com/
 82 | #    - Create a new application
 83 | #    - Go to API Keys tab
 84 | #    - Copy Secret Key and Publishable Key
 85 | 
 86 | # 3. Configure Google OAuth in Clerk:
 87 | #    - In Clerk Dashboard, go to Social Connections
 88 | #    - Enable Google provider
 89 | #    - Get Google OAuth credentials from Google Console
 90 | #    - Add redirect URI: http://localhost:8000/auth/callback
 91 | 
 92 | # 4. Update OAuth URLs:
 93 | #    - Set CLERK_OAUTH_REDIRECT_URL to your callback URL
 94 | #    - Set CLERK_FRONTEND_URL to your frontend application URL
 95 | 
 96 | # 5. Enable authentication:
 97 | #    - Set ENABLE_AUTH=true
 98 | 
 99 | # 6. Test the OAuth flow:
100 | #    - Start server: uvicorn asgi_app:app --reload
101 | #    - Visit: http://localhost:8000/auth/login
102 | #    - Complete OAuth flow with Google
103 | #    - Check: http://localhost:8000/auth/user
```

--------------------------------------------------------------------------------
/saidsurucu-yargi-mcp-f5fa007/.gitignore:
--------------------------------------------------------------------------------

```
  1 | # Byte-compiled / optimized / DLL files
  2 | __pycache__/
  3 | *.py[cod]
  4 | *$py.class
  5 | 
  6 | # C extensions
  7 | *.so
  8 | 
  9 | # Distribution / packaging
 10 | .Python
 11 | build/
 12 | develop-eggs/
 13 | dist/
 14 | downloads/
 15 | eggs/
 16 | .eggs/
 17 | lib/
 18 | lib64/
 19 | parts/
 20 | sdist/
 21 | var/
 22 | wheels/
 23 | share/python-wheels/
 24 | *.egg-info/
 25 | .installed.cfg
 26 | *.egg
 27 | MANIFEST
 28 | 
 29 | # PyInstaller
 30 | #  Usually these files are written by a python script from a template
 31 | #  before PyInstaller builds the exe, so as to inject date/other infos into it.
 32 | *.manifest
 33 | *.spec
 34 | 
 35 | # Installer logs
 36 | pip-log.txt
 37 | pip-delete-this-directory.txt
 38 | 
 39 | # Unit test / coverage reports
 40 | htmlcov/
 41 | .tox/
 42 | .nox/
 43 | .coverage
 44 | .coverage.*
 45 | .cache
 46 | nosetests.xml
 47 | coverage.xml
 48 | *.cover
 49 | *.py,cover
 50 | .hypothesis/
 51 | .pytest_cache/
 52 | cover/
 53 | 
 54 | # Translations
 55 | *.mo
 56 | *.pot
 57 | 
 58 | # Django stuff:
 59 | *.log
 60 | local_settings.py
 61 | db.sqlite3
 62 | db.sqlite3-journal
 63 | 
 64 | # Flask stuff:
 65 | instance/
 66 | .webassets-cache
 67 | 
 68 | # Scrapy stuff:
 69 | .scrapy
 70 | 
 71 | # Sphinx documentation
 72 | docs/_build/
 73 | 
 74 | # PyBuilder
 75 | .pybuilder/
 76 | target/
 77 | 
 78 | # Jupyter Notebook
 79 | .ipynb_checkpoints
 80 | 
 81 | # IPython
 82 | profile_default/
 83 | ipython_config.py
 84 | 
 85 | # pyenv
 86 | #   For a library or package, you might want to ignore these files since the code is
 87 | #   intended to run in multiple environments; otherwise, check them in:
 88 | # .python-version
 89 | 
 90 | # pipenv
 91 | #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
 92 | #   However, in case of collaboration, if having platform-specific dependencies or dependencies
 93 | #   having no cross-platform support, pipenv may install dependencies that don't work, or not
 94 | #   install all needed dependencies.
 95 | #Pipfile.lock
 96 | 
 97 | # poetry
 98 | #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
 99 | #   This is especially recommended for binary packages to ensure reproducibility, and is more
100 | #   commonly ignored for libraries.
101 | #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 | 
104 | # pdm
105 | #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | #   in version control.
109 | #   https://pdm.fming.dev/#use-with-ide
110 | .pdm.toml
111 | 
112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113 | __pypackages__/
114 | 
115 | # Celery stuff
116 | celerybeat-schedule
117 | celerybeat.pid
118 | 
119 | # SageMath parsed files
120 | *.sage.py
121 | 
122 | # Environments
123 | .env
124 | .venv
125 | env/
126 | venv/
127 | ENV/
128 | env.bak/
129 | venv.bak/
130 | 
131 | # Spyder project settings
132 | .spyderproject
133 | .spyproject
134 | 
135 | # Rope project settings
136 | .ropeproject
137 | 
138 | # mkdocs documentation
139 | /site
140 | 
141 | # mypy
142 | .mypy_cache/
143 | .dmypy.json
144 | dmypy.json
145 | 
146 | # Pyre type checker
147 | .pyre/
148 | 
149 | # pytype static type analyzer
150 | .pytype/
151 | 
152 | # Cython debug symbols
153 | cython_debug/
154 | 
155 | # PyCharm
156 | #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157 | #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158 | #  and can be added to the global gitignore or merged into this file.  For a more nuclear
159 | #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
160 | #.idea/
161 | .DS_Store
162 | hello.py
163 | 
164 | *.html
165 | fast-mcp-docs.md
166 | 
167 | # Debug and test files
168 | debug_*
169 | test_*
170 | CLAUDE.md
171 | 
172 | # ASGI/Deployment files
173 | ssl/
174 | *.pem
175 | *.key
176 | *.crt
177 | 
178 | # Docker volumes
179 | redis-data/
180 | 
181 | # Production logs
182 | logs/*.log.*
183 | 
184 | # Remove these lines - we need deployment files in git:
185 | # Dockerfile - NEEDED for SaaS deployment
186 | # fly.toml - NEEDED for Fly.io deployment  
187 | # .github/workflows/fly-deploy.yml - NEEDED for GitHub Actions
188 | 
189 | GEMINI.md
190 | fly.toml
191 | scripts/deploy-flyio.sh
192 | docs/DEPLOYMENT_FLYIO.md
193 | setup_jwt_template.py
194 | mcp_server_main.py.backup
195 | mcp_overhead_content.json
196 | ANTHROPIC_TEST_README.md
197 | extract_mcp_overhead.py
198 | mcp_overhead_content.txt
199 | mcp_overhead_summary.txt
200 | run_http_server.py
201 | run_local_test.py
202 | 
203 | # MCP overhead analysis files
204 | mcp_overhead_*.json
205 | mcp_overhead_*.txt
206 | mcp_test_results_*.json
207 | mcp_quick_test_*.json
208 | 
209 | # General text files (temporary notes, etc)
210 | *.txt
211 | analyze_playwright_mcp.py
212 | measure_mcp_directly.py
213 | playwright_mcp_overhead.json
214 | simple_test.py
215 | analyze_anayasa_html.py
216 | 
```

--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------

```
  1 | # Byte-compiled / optimized / DLL files
  2 | __pycache__/
  3 | *.py[cod]
  4 | *$py.class
  5 | 
  6 | # C extensions
  7 | *.so
  8 | 
  9 | # Distribution / packaging
 10 | .Python
 11 | build/
 12 | develop-eggs/
 13 | dist/
 14 | downloads/
 15 | eggs/
 16 | .eggs/
 17 | lib/
 18 | lib64/
 19 | parts/
 20 | sdist/
 21 | var/
 22 | wheels/
 23 | share/python-wheels/
 24 | *.egg-info/
 25 | .installed.cfg
 26 | *.egg
 27 | MANIFEST
 28 | 
 29 | # PyInstaller
 30 | #  Usually these files are written by a python script from a template
 31 | #  before PyInstaller builds the exe, so as to inject date/other infos into it.
 32 | *.manifest
 33 | *.spec
 34 | 
 35 | # Installer logs
 36 | pip-log.txt
 37 | pip-delete-this-directory.txt
 38 | 
 39 | # Unit test / coverage reports
 40 | htmlcov/
 41 | .tox/
 42 | .nox/
 43 | .coverage
 44 | .coverage.*
 45 | .cache
 46 | nosetests.xml
 47 | coverage.xml
 48 | *.cover
 49 | *.py,cover
 50 | .hypothesis/
 51 | .pytest_cache/
 52 | cover/
 53 | 
 54 | # Translations
 55 | *.mo
 56 | *.pot
 57 | 
 58 | # Django stuff:
 59 | *.log
 60 | local_settings.py
 61 | db.sqlite3
 62 | db.sqlite3-journal
 63 | 
 64 | # Flask stuff:
 65 | instance/
 66 | .webassets-cache
 67 | 
 68 | # Scrapy stuff:
 69 | .scrapy
 70 | 
 71 | # Sphinx documentation
 72 | docs/_build/
 73 | 
 74 | # PyBuilder
 75 | .pybuilder/
 76 | target/
 77 | 
 78 | # Jupyter Notebook
 79 | .ipynb_checkpoints
 80 | 
 81 | # IPython
 82 | profile_default/
 83 | ipython_config.py
 84 | 
 85 | # pyenv
 86 | #   For a library or package, you might want to ignore these files since the code is
 87 | #   intended to run in multiple environments; otherwise, check them in:
 88 | # .python-version
 89 | 
 90 | # pipenv
 91 | #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
 92 | #   However, in case of collaboration, if having platform-specific dependencies or dependencies
 93 | #   having no cross-platform support, pipenv may install dependencies that don't work, or not
 94 | #   install all needed dependencies.
 95 | #Pipfile.lock
 96 | 
 97 | # poetry
 98 | #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
 99 | #   This is especially recommended for binary packages to ensure reproducibility, and is more
100 | #   commonly ignored for libraries.
101 | #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 | 
104 | # pdm
105 | #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | #   in version control.
109 | #   https://pdm.fming.dev/#use-with-ide
110 | .pdm.toml
111 | 
112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113 | __pypackages__/
114 | 
115 | # Celery stuff
116 | celerybeat-schedule
117 | celerybeat.pid
118 | 
119 | # SageMath parsed files
120 | *.sage.py
121 | 
122 | # Environments
123 | .env
124 | .venv
125 | env/
126 | venv/
127 | ENV/
128 | env.bak/
129 | venv.bak/
130 | 
131 | # Spyder project settings
132 | .spyderproject
133 | .spyproject
134 | 
135 | # Rope project settings
136 | .ropeproject
137 | 
138 | # mkdocs documentation
139 | /site
140 | 
141 | # mypy
142 | .mypy_cache/
143 | .dmypy.json
144 | dmypy.json
145 | 
146 | # Pyre type checker
147 | .pyre/
148 | 
149 | # pytype static type analyzer
150 | .pytype/
151 | 
152 | # Cython debug symbols
153 | cython_debug/
154 | 
155 | # PyCharm
156 | #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157 | #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158 | #  and can be added to the global gitignore or merged into this file.  For a more nuclear
159 | #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
160 | #.idea/
161 | .DS_Store
162 | hello.py
163 | 
164 | *.html
165 | fast-mcp-docs.md
166 | 
167 | # Debug and test files
168 | debug_*
169 | test_*
170 | CLAUDE.md
171 | 
172 | # ASGI/Deployment files
173 | ssl/
174 | *.pem
175 | *.key
176 | *.crt
177 | 
178 | # Docker volumes
179 | redis-data/
180 | 
181 | # Production logs
182 | logs/*.log.*
183 | 
184 | # Remove these lines - we need deployment files in git:
185 | # Dockerfile - NEEDED for SaaS deployment
186 | # fly.toml - NEEDED for Fly.io deployment  
187 | # .github/workflows/fly-deploy.yml - NEEDED for GitHub Actions
188 | 
189 | GEMINI.md
190 | fly.toml
191 | scripts/deploy-flyio.sh
192 | docs/DEPLOYMENT_FLYIO.md
193 | setup_jwt_template.py
194 | mcp_server_main.py.backup
195 | mcp_overhead_content.json
196 | ANTHROPIC_TEST_README.md
197 | extract_mcp_overhead.py
198 | mcp_overhead_content.txt
199 | mcp_overhead_summary.txt
200 | run_http_server.py
201 | run_local_test.py
202 | 
203 | # MCP overhead analysis files
204 | mcp_overhead_*.json
205 | mcp_overhead_*.txt
206 | mcp_test_results_*.json
207 | mcp_quick_test_*.json
208 | 
209 | # General text files (temporary notes, etc)
210 | *.txt
211 | analyze_playwright_mcp.py
212 | measure_mcp_directly.py
213 | playwright_mcp_overhead.json
214 | simple_test.py
215 | analyze_anayasa_html.py
216 | CLAUDE.md
217 | 
```

--------------------------------------------------------------------------------
/saidsurucu-yargi-mcp-f5fa007/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Yargı MCP: Türk Hukuk Kaynakları için MCP Sunucusu
  2 | 
  3 | [![Star History Chart](https://api.star-history.com/svg?repos=saidsurucu/yargi-mcp&type=Date)](https://www.star-history.com/#saidsurucu/yargi-mcp&Date)
  4 | 
  5 | Bu proje, çeşitli Türk hukuk kaynaklarına (Yargıtay, Danıştay, Emsal Kararlar, Uyuşmazlık Mahkemesi, Anayasa Mahkemesi - Norm Denetimi ile Bireysel Başvuru Kararları, Kamu İhale Kurulu Kararları, Rekabet Kurumu Kararları, Sayıştay Kararları, KVKK Kararları ve BDDK Kararları) erişimi kolaylaştıran bir [FastMCP](https://gofastmcp.com/) sunucusu oluşturur. Bu sayede, bu kaynaklardan veri arama ve belge getirme işlemleri, Model Context Protocol (MCP) destekleyen LLM (Büyük Dil Modeli) uygulamaları (örneğin Claude Desktop veya [5ire](https://5ire.app)) ve diğer istemciler tarafından araç (tool) olarak kullanılabilir hale gelir.
  6 | 
  7 | ![örnek](./ornek.png)
  8 | 
  9 | 🎯 **Temel Özellikler**
 10 | 
 11 | 🚀 **YÜKSEK PERFORMANS OPTİMİZASYONU:** Bu MCP sunucusu **%61.8 token azaltma** ile optimize edilmiştir (8,692 token tasarrufu). Claude AI ile daha hızlı yanıt süreleri ve daha verimli etkileşim sağlar.
 12 | 
 13 | * Çeşitli Türk hukuk veritabanlarına programatik erişim için standart bir MCP arayüzü.
 14 | * **Kapsamlı Mahkeme Daire/Kurul Filtreleme:** 79 farklı daire/kurul filtreleme seçeneği
 15 | * **Dual/Triple API Desteği:** Her mahkeme için birden fazla API kaynağı ile maksimum kapsama
 16 | * **Kapsamlı Tarih Filtreleme:** Tüm Bedesten API araçlarında ISO 8601 formatında tarih aralığı filtreleme
 17 | * **Kesin Cümle Arama:** Tüm Bedesten API araçlarında çift tırnak ile tam cümle arama desteği
 18 | * Aşağıdaki kurumların kararlarını arama ve getirme yeteneği:
 19 |     * **Yargıtay:** Detaylı kriterlerle karar arama ve karar metinlerini Markdown formatında getirme. **Dual API** (Ana + Bedesten) + **52 Daire/Kurul Filtreleme** + **Tarih & Kesin Cümle Arama** (Hukuk/Ceza Daireleri, Genel Kurullar)
 20 |     * **Danıştay:** Anahtar kelime bazlı ve detaylı kriterlerle karar arama; karar metinlerini Markdown formatında getirme. **Triple API** (Keyword + Detailed + Bedesten) + **27 Daire/Kurul Filtreleme** + **Tarih & Kesin Cümle Arama** (İdari Daireler, Vergi/İdare Kurulları, Askeri Yüksek İdare Mahkemesi)
 21 |     * **Yerel Hukuk Mahkemeleri:** Bedesten API ile yerel hukuk mahkemesi kararlarına erişim + **Tarih & Kesin Cümle Arama**
 22 |     * **İstinaf Hukuk Mahkemeleri:** Bedesten API ile istinaf mahkemesi kararlarına erişim + **Tarih & Kesin Cümle Arama**
 23 |     * **Kanun Yararına Bozma (KYB):** Bedesten API ile olağanüstü kanun yoluna erişim + **Tarih & Kesin Cümle Arama**
 24 |     * **Emsal (UYAP):** Detaylı kriterlerle emsal karar arama ve karar metinlerini Markdown formatında getirme.
 25 |     * **Uyuşmazlık Mahkemesi:** Form tabanlı kriterlerle karar arama ve karar metinlerini (URL ile erişilen) Markdown formatında getirme.
 26 |     * **Anayasa Mahkemesi (Norm Denetimi):** Kapsamlı kriterlerle norm denetimi kararlarını arama; uzun karar metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 27 |     * **Anayasa Mahkemesi (Bireysel Başvuru):** Kapsamlı kriterlerle bireysel başvuru "Karar Arama Raporu" oluşturma ve listedeki kararların metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 28 |     * **KİK (Kamu İhale Kurulu):** Çeşitli kriterlerle Kurul kararlarını arama; uzun karar metinlerini (varsayılan 5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 29 |     * **Rekabet Kurumu:** Çeşitli kriterlerle Kurul kararlarını arama; karar metinlerini Markdown formatında getirme.
 30 |     * **Sayıştay:** 3 karar türü ile kapsamlı denetim kararlarına erişim + **8 Daire Filtreleme** + **Tarih Aralığı & İçerik Arama** (Genel Kurul yorumlayıcı kararları, Temyiz Kurulu itiraz kararları, Daire ilk derece denetim kararları)
 31 |     * **KVKK (Kişisel Verilerin Korunması Kurulu):** Brave Search API ile veri koruma kararlarını arama; uzun karar metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme + **Türkçe Arama** + **Site Hedeflemeli Arama** (kvkk.gov.tr kararları)
 32 |     * **BDDK (Bankacılık Düzenleme ve Denetleme Kurumu):** Bankacılık düzenleme kararlarını arama; karar metinlerini Markdown formatında getirme + **Optimized Search** + **"Karar Sayısı" Targeting** + **Spesifik URL Filtreleme** (bddk.org.tr/Mevzuat/DokumanGetir)
 33 | 
 34 | * Karar metinlerinin daha kolay işlenebilmesi için Markdown formatına çevrilmesi.
 35 | * Claude Desktop uygulaması ile `fastmcp install` komutu kullanılarak kolay entegrasyon.
 36 | * Yargı MCP artık [5ire](https://5ire.app) gibi Claude Desktop haricindeki MCP istemcilerini de destekliyor!
 37 | ---
 38 | <details>
 39 | <summary>🚀 <strong>Claude Haricindeki Modellerle Kullanmak İçin Çok Kolay Kurulum (Örnek: 5ire için)</strong></summary>
 40 | 
 41 | Bu bölüm, Yargı MCP aracını 5ire gibi Claude Desktop dışındaki MCP istemcileriyle kullanmak isteyenler içindir.
 42 | 
 43 | * **Python Kurulumu:** Sisteminizde Python 3.11 veya üzeri kurulu olmalıdır. Kurulum sırasında "**Add Python to PATH**" (Python'ı PATH'e ekle) seçeneğini işaretlemeyi unutmayın. [Buradan](https://www.python.org/downloads/) indirebilirsiniz.
 44 | * **Git Kurulumu (Windows):** Bilgisayarınıza [git](https://git-scm.com/downloads/win) yazılımını indirip kurun. "Git for Windows/x64 Setup" seçeneğini indirmelisiniz.
 45 | * **`uv` Kurulumu:**
 46 |     * **Windows Kullanıcıları (PowerShell):** Bir CMD ekranı açın ve bu kodu çalıştırın: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
 47 |     * **Mac/Linux Kullanıcıları (Terminal):** Bir Terminal ekranı açın ve bu kodu çalıştırın: `curl -LsSf https://astral.sh/uv/install.sh | sh`
 48 | * **Microsoft Visual C++ Redistributable (Windows):** Bazı Python paketlerinin doğru çalışması için gereklidir. [Buradan](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) indirip kurun.
 49 | * İşletim sisteminize uygun [5ire](https://5ire.app) MCP istemcisini indirip kurun.
 50 | * 5ire'ı açın. **Workspace -> Providers** menüsünden kullanmak istediğiniz LLM servisinin API anahtarını girin.
 51 | * **Tools** menüsüne girin. **+Local** veya **New** yazan butona basın.
 52 |     * **Tool Key:** `yargimcp`
 53 |     * **Name:** `Yargı MCP`
 54 |     * **Command:**
 55 |         ```
 56 |         uvx yargi-mcp
 57 |         ```
 58 |     * **Save** butonuna basarak kaydedin.
 59 | ![5ire ayarları](./5ire-settings.png)
 60 | * Şimdi **Tools** altında **Yargı MCP**'yi görüyor olmalısınız. Üstüne geldiğinizde sağda çıkan butona tıklayıp etkinleştirin (yeşil ışık yanmalı).
 61 | * Artık Yargı MCP ile konuşabilirsiniz.
 62 | 
 63 | </details>
 64 | 
 65 | ---
 66 | <details>
 67 | <summary>⚙️ <strong>Claude Desktop Manuel Kurulumu</strong></summary>
 68 | 
 69 | 1.  **Ön Gereksinimler:** Python, `uv`, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz.
 70 | 2.  Claude Desktop **Settings -> Developer -> Edit Config**.
 71 | 3.  Açılan `claude_desktop_config.json` dosyasına `mcpServers` altına ekleyin:
 72 | 
 73 |     ```json
 74 |     {
 75 |       "mcpServers": {
 76 |         // ... (varsa diğer sunucularınız) ...
 77 |         "Yargı MCP": {
 78 |           "command": "uvx",
 79 |           "args": [
 80 |             "yargi-mcp"
 81 |           ]
 82 |         }
 83 |       }
 84 |     }
 85 |     ```
 86 | 4.  Claude Desktop'ı kapatıp yeniden başlatın.
 87 | 
 88 | </details>
 89 | 
 90 | ---
 91 | <details>
 92 | <summary>🌟 <strong>Gemini CLI ile Kullanım</strong></summary>
 93 | 
 94 | Yargı MCP'yi Gemini CLI ile kullanmak için:
 95 | 
 96 | 1. **Ön Gereksinimler:** Python, `uv`, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz.
 97 | 
 98 | 2. **Gemini CLI ayarlarını yapılandırın:**
 99 |    
100 |    Gemini CLI'ın ayar dosyasını düzenleyin:
101 |    - **macOS/Linux:** `~/.gemini/settings.json`
102 |    - **Windows:** `%USERPROFILE%\.gemini\settings.json`
103 |    
104 |    Aşağıdaki `mcpServers` bloğunu ekleyin:
105 |    ```json
106 |    {
107 |      "theme": "Default",
108 |      "selectedAuthType": "###",
109 |      "mcpServers": {
110 |        "yargi_mcp": {
111 |          "command": "uvx",
112 |          "args": [
113 |            "yargi-mcp"
114 |          ]
115 |        }
116 |      }
117 |    }
118 |    ```
119 |    
120 |    **Yapılandırma açıklamaları:**
121 |    - `"yargi_mcp"`: Sunucunuz için yerel bir isim
122 |    - `"command"`: `uvx` komutu (uv'nin paket çalıştırma aracı)
123 |    - `"args"`: GitHub'dan doğrudan Yargı MCP'yi çalıştırmak için gerekli argümanlar
124 | 
125 | 3. **Kullanım:**
126 |    - Gemini CLI'ı başlatın
127 |    - Yargı MCP araçları otomatik olarak kullanılabilir olacaktır
128 |    - Örnek komutlar:
129 |      - "Yargıtay'ın mülkiyet hakkı ile ilgili son kararlarını ara"
130 |      - "Danıştay'ın imar planı iptaline ilişkin kararlarını bul"
131 |      - "Anayasa Mahkemesi'nin ifade özgürlüğü kararlarını getir"
132 | 
133 | </details>
134 | 
135 | <details>
136 | <summary>🛠️ <strong>Kullanılabilir Araçlar (MCP Tools)</strong></summary>
137 | 
138 | Bu FastMCP sunucusu **19 optimize edilmiş MCP aracı** sunar (token verimliliği için optimize edilmiş):
139 | 
140 | ### **Yargıtay Araçları (Birleşik Bedesten API - Token Optimized)**
141 | *Not: Yargıtay araçları token verimliliği için birleşik Bedesten API'ye entegre edilmiştir*
142 | 
143 | ### **Danıştay Araçları (Birleşik Bedesten API - Token Optimized)**
144 | *Not: Danıştay araçları token verimliliği için birleşik Bedesten API'ye entegre edilmiştir*
145 | 
146 | ### **Birleşik Bedesten API Araçları (5 Mahkeme) - 🚀 TOKEN OPTİMİZE**
147 | 1. `search_bedesten_unified(phrase, court_types, birimAdi, kararTarihiStart, kararTarihiEnd, ...)`: **5 mahkeme türünü** birleşik arama (Yargıtay, Danıştay, Yerel Hukuk, İstinaf Hukuk, KYB) + **79 daire filtreleme** + **Tarih & Kesin Cümle Arama**
148 | 2. `get_bedesten_document_markdown(documentId: str)`: Bedesten API'den herhangi bir belgeyi Markdown formatında getirir (HTML/PDF → Markdown)
149 | 
150 | ### **Emsal Karar Araçları (UYAP)**
151 | 3. `search_emsal_detailed_decisions(keyword, ...)`: Emsal (UYAP) kararlarını detaylı kriterlerle arar.
152 | 4. `get_emsal_document_markdown(id: str)`: Belirli bir Emsal kararının metnini Markdown formatında getirir.
153 | 
154 | ### **Uyuşmazlık Mahkemesi Araçları**
155 | 5. `search_uyusmazlik_decisions(icerik, ...)`: Uyuşmazlık Mahkemesi kararlarını çeşitli form kriterleriyle arar.
156 | 6. `get_uyusmazlik_document_markdown_from_url(document_url)`: Bir Uyuşmazlık kararını tam URL'sinden alıp Markdown formatında getirir.
157 | 
158 | ### **Anayasa Mahkemesi Araçları (Birleşik API) - 🚀 TOKEN OPTİMİZE**
159 | 7. `search_anayasa_unified(decision_type, keywords_all, ...)`: AYM kararlarını birleşik arama (Norm Denetimi + Bireysel Başvuru) - **4 araç → 2 araç optimizasyonu**
160 | 8. `get_anayasa_document_unified(document_url, page_number)`: AYM kararlarını birleşik belge getirme - **sayfalanmış Markdown** içeriği
161 | 
162 | ### **KİK (Kamu İhale Kurulu) Araçları**
163 | 9. `search_kik_decisions(karar_tipi, ...)`: KİK (Kamu İhale Kurulu) kararlarını arar. 
164 | 10. `get_kik_document_markdown(karar_id, page_number)`: Belirli bir KİK kararını, Base64 ile encode edilmiş `karar_id`'sini kullanarak alır ve **sayfalanmış Markdown** içeriğini getirir.
165 | ### **Rekabet Kurumu Araçları**
166 |     * `search_rekabet_kurumu_decisions(KararTuru: Literal[...], ...) -> RekabetSearchResult`: Rekabet Kurumu kararlarını arar. `KararTuru` için kullanıcı dostu isimler kullanılır (örn: "Birleşme ve Devralma").
167 |     * `get_rekabet_kurumu_document(karar_id: str, page_number: Optional[int] = 1) -> RekabetDocument`: Belirli bir Rekabet Kurumu kararını `karar_id` ile alır. Kararın PDF formatındaki orijinalinden istenen sayfayı ayıklar ve Markdown formatında döndürür.
168 | 
169 | 
170 | ---
171 | 
172 | * **Sayıştay Araçları (3 Karar Türü + 8 Daire Filtreleme):**
173 |     * `search_sayistay_genel_kurul(karar_no, karar_tarih_baslangic, karar_tamami, ...)`: Sayıştay Genel Kurul (yorumlayıcı) kararlarını arar. **Tarih aralığı** (2006-2024) + **İçerik arama** (400 karakter)
174 |     * `search_sayistay_temyiz_kurulu(ilam_dairesi, kamu_idaresi_turu, temyiz_karar, ...)`: Temyiz Kurulu (itiraz) kararlarını arar. **8 Daire filtreleme** + **Kurum türü** + **Konu sınıflandırması**
175 |     * `search_sayistay_daire(yargilama_dairesi, web_karar_metni, hesap_yili, ...)`: Daire (ilk derece denetim) kararlarını arar. **8 Daire filtreleme** + **Hesap yılı** + **İçerik arama**
176 |     * `get_sayistay_genel_kurul_document_markdown(decision_id: str)`: Genel Kurul kararının tam metnini Markdown formatında getirir
177 |     * `get_sayistay_temyiz_kurulu_document_markdown(decision_id: str)`: Temyiz Kurulu kararının tam metnini Markdown formatında getirir  
178 |     * `get_sayistay_daire_document_markdown(decision_id: str)`: Daire kararının tam metnini Markdown formatında getirir
179 | 
180 | * **KVKK Araçları (Brave Search API + Türkçe Arama):**
181 |     * `search_kvkk_decisions(keywords, page, pageSize, ...)`: KVKK (Kişisel Verilerin Korunması Kurulu) kararlarını Brave Search API ile arar. **Türkçe arama** + **Site hedeflemeli** (`site:kvkk.gov.tr "karar özeti"`) + **Sayfalama desteği**
182 |     * `get_kvkk_document_markdown(decision_url: str, page_number: Optional[int] = 1)`: KVKK kararının tam metnini **sayfalanmış Markdown** formatında getirir (5.000 karakterlik sayfa)
183 | 
184 | ### BDDK Araçları
185 |     * `search_bddk_decisions(keywords, page)`: BDDK (Bankacılık Düzenleme ve Denetleme Kurumu) kararlarını arar. **"Karar Sayısı" targeting** + **Spesifik URL filtreleme** (`bddk.org.tr/Mevzuat/DokumanGetir`) + **Optimized search**
186 |     * `get_bddk_document_markdown(document_id: str, page_number: Optional[int] = 1)`: BDDK kararının tam metnini **sayfalanmış Markdown** formatında getirir (5.000 karakterlik sayfa)
187 | 
188 | </details>
189 | 
190 | ---
191 | 
192 | <details>
193 | <summary>📊 <strong>Kapsamlı İstatistikler & Optimizasyon Başarıları</strong></summary>
194 | 
195 | 🚀 **TOKEN OPTİMİZASYON BAŞARISI:**
196 | - **%61.8 Token Azaltma:** 14,061 → 5,369 tokens (8,692 token tasarrufu)
197 | - **Hedef Aşım:** 10,000 token hedefini 4,631 token aştık
198 | - **Daha Hızlı Yanıt:** Claude AI ile optimize edilmiş etkileşim
199 | - **Korunan İşlevsellik:** %100 özellik desteği devam ediyor
200 | 
201 | **GENEL İSTATİSTİKLER:**
202 | - **Toplam Mahkeme/Kurum:** 13 farklı hukuki kurum (KVKK dahil)
203 | - **Toplam MCP Tool:** 19 optimize edilmiş arama ve belge getirme aracı  
204 | - **Daire/Kurul Filtreleme:** 87 farklı seçenek (52 Yargıtay + 27 Danıştay + 8 Sayıştay)
205 | - **Tarih Filtreleme:** Birleşik Bedesten API aracında ISO 8601 formatında tam tarih aralığı desteği
206 | - **Kesin Cümle Arama:** Birleşik Bedesten API aracında çift tırnak ile tam cümle arama (`"\"mülkiyet kararı\""` formatı)
207 | - **Birleşik API:** 10 ayrı Bedesten aracı → 2 birleşik araç (search_bedesten_unified + get_bedesten_document_markdown)
208 | - **API Kaynağı:** Dual/Triple API desteği ile maksimum kapsama
209 | - **Tam Türk Adalet Sistemi:** Yerel mahkemelerden en yüksek mahkemelere kadar
210 | 
211 | **🏛️ Desteklenen Mahkeme Hiyerarşisi:**
212 | ```
213 | Yerel Mahkemeler → İstinaf → Yargıtay/Danıştay → Anayasa Mahkemesi
214 |      ↓              ↓            ↓                    ↓
215 | Bedesten API   Bedesten API   Dual/Triple API   Norm+Bireysel API
216 | + Tarih + Kesin + Tarih + Kesin + Daire + Tarih   + Gelişmiş
217 |   Cümle Arama    Cümle Arama   + Kesin Cümle     Arama
218 | ```
219 | 
220 | **⚖️ Kapsamlı Filtreleme Özellikleri:**
221 | - **Daire Filtreleme:** 79 seçenek (52 Yargıtay + 27 Danıştay)
222 |   - **Yargıtay:** 52 seçenek (1-23 Hukuk, 1-23 Ceza, Genel Kurullar, Başkanlar Kurulu)
223 |   - **Danıştay:** 27 seçenek (1-17 Daireler, İdare/Vergi Kurulları, Askeri Mahkemeler)
224 | - **Tarih Filtreleme:** 5 Bedesten API aracında ISO 8601 formatı (YYYY-MM-DDTHH:MM:SS.000Z)
225 |   - Tek tarih, tarih aralığı, tek taraflı filtreleme desteği
226 |   - Yargıtay, Danıştay, Yerel Hukuk, İstinaf Hukuk, KYB kararları
227 | - **Kesin Cümle Arama:** 5 Bedesten API aracında çift tırnak formatı
228 |   - Normal arama: `"mülkiyet kararı"` (kelimeler ayrı ayrı)
229 |   - Kesin arama: `"\"mülkiyet kararı\""` (tam cümle olarak)
230 |   - Daha kesin sonuçlar için hukuki terimler ve kavramlar
231 | 
232 | **🔧 OPTİMİZASYON DETAYLARI:**
233 | - **Anayasa Mahkemesi:** 4 araç → 2 birleşik araç (search_anayasa_unified + get_anayasa_document_unified)
234 | - **Yargıtay & Danıştay:** Ana API araçları birleşik Bedesten API'ye entegre edildi
235 | - **Sayıştay:** 6 araç → 2 birleşik araç (search_sayistay_unified + get_sayistay_document_unified)
236 | - **Parameter Optimizasyonu:** pageSize parametreleri optimize edildi
237 | - **Açıklama Optimizasyonu:** Uzun açıklamalar kısaltıldı (örn: KIK karar_metni)
238 | 
239 | </details>
240 | 
241 | ---
242 | 
243 | <details>
244 | <summary>🌐 <strong>Web Service / ASGI Deployment</strong></summary>
245 | 
246 | Yargı MCP artık web servisi olarak da çalıştırılabilir! ASGI desteği sayesinde:
247 | 
248 | - **Web API olarak erişim**: HTTP endpoint'leri üzerinden MCP araçlarına erişim
249 | - **Cloud deployment**: Heroku, Railway, Google Cloud Run, AWS Lambda desteği
250 | - **Docker desteği**: Production-ready Docker container
251 | - **FastAPI entegrasyonu**: REST API ve interaktif dokümantasyon
252 | 
253 | **Hızlı başlangıç:**
254 | ```bash
255 | # ASGI dependencies yükle
256 | pip install yargi-mcp[asgi]
257 | 
258 | # Web servisi olarak başlat
259 | python run_asgi.py
260 | # veya
261 | uvicorn asgi_app:app --host 0.0.0.0 --port 8000
262 | ```
263 | 
264 | Detaylı deployment rehberi için: [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
265 | 
266 | </details>
267 | 
268 | ---
269 | 
270 | 📜 **Lisans**
271 | 
272 | Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için `LICENSE` dosyasına bakınız.
273 | 
```

--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Yargı MCP: Türk Hukuk Kaynakları için MCP Sunucusu
  2 | 
  3 | [![Star History Chart](https://api.star-history.com/svg?repos=saidsurucu/yargi-mcp&type=Date)](https://www.star-history.com/#saidsurucu/yargi-mcp&Date)
  4 | 
  5 | Bu proje, çeşitli Türk hukuk kaynaklarına (Yargıtay, Danıştay, Emsal Kararlar, Uyuşmazlık Mahkemesi, Anayasa Mahkemesi - Norm Denetimi ile Bireysel Başvuru Kararları, Kamu İhale Kurulu Kararları, Rekabet Kurumu Kararları, Sayıştay Kararları, KVKK Kararları ve BDDK Kararları) erişimi kolaylaştıran bir [FastMCP](https://gofastmcp.com/) sunucusu oluşturur. Bu sayede, bu kaynaklardan veri arama ve belge getirme işlemleri, Model Context Protocol (MCP) destekleyen LLM (Büyük Dil Modeli) uygulamaları (örneğin Claude Desktop veya [5ire](https://5ire.app)) ve diğer istemciler tarafından araç (tool) olarak kullanılabilir hale gelir.
  6 | 
  7 | ---
  8 | 
  9 | ## 🚀 5 Dakikada Başla (Remote MCP)
 10 | 
 11 | ### ✅ Kurulum Gerektirmez! Hemen Kullan!
 12 | 
 13 | 🔗 **Remote MCP Adresi:** `https://yargimcp.fastmcp.app/mcp`
 14 | 
 15 | ### Claude Desktop ile Kullanım
 16 | 
 17 | 1. **Claude Desktop'ı açın**
 18 | 2. **Settings → Connectors → Add Custom Connector**
 19 | 3. **Bilgileri girin:**
 20 |    - **Name:** `Yargı MCP`
 21 |    - **URL:** `https://yargimcp.fastmcp.app/mcp`
 22 | 4. **Add** butonuna tıklayın
 23 | 5. **Hemen kullanmaya başlayın!** 🎉
 24 | 
 25 | > 💡 **İpucu:** Remote MCP sayesinde Python, uv veya herhangi bir kurulum yapmadan doğrudan Claude Desktop üzerinden Türk hukuk kaynaklarına erişebilirsiniz!
 26 | 
 27 | ---
 28 | 
 29 | ![örnek](./ornek.png)
 30 | 
 31 | 🎯 **Temel Özellikler**
 32 | 
 33 | 🚀 **YÜKSEK PERFORMANS OPTİMİZASYONU:** Bu MCP sunucusu **%61.8 token azaltma** ile optimize edilmiştir (8,692 token tasarrufu). Claude AI ile daha hızlı yanıt süreleri ve daha verimli etkileşim sağlar.
 34 | 
 35 | * Çeşitli Türk hukuk veritabanlarına programatik erişim için standart bir MCP arayüzü.
 36 | * **Kapsamlı Mahkeme Daire/Kurul Filtreleme:** 79 farklı daire/kurul filtreleme seçeneği
 37 | * **Dual/Triple API Desteği:** Her mahkeme için birden fazla API kaynağı ile maksimum kapsama
 38 | * **Kapsamlı Tarih Filtreleme:** Tüm Bedesten API araçlarında ISO 8601 formatında tarih aralığı filtreleme
 39 | * **Kesin Cümle Arama:** Tüm Bedesten API araçlarında çift tırnak ile tam cümle arama desteği
 40 | * Aşağıdaki kurumların kararlarını arama ve getirme yeteneği:
 41 |     * **Yargıtay:** Detaylı kriterlerle karar arama ve karar metinlerini Markdown formatında getirme. **Dual API** (Ana + Bedesten) + **52 Daire/Kurul Filtreleme** + **Tarih & Kesin Cümle Arama** (Hukuk/Ceza Daireleri, Genel Kurullar)
 42 |     * **Danıştay:** Anahtar kelime bazlı ve detaylı kriterlerle karar arama; karar metinlerini Markdown formatında getirme. **Triple API** (Keyword + Detailed + Bedesten) + **27 Daire/Kurul Filtreleme** + **Tarih & Kesin Cümle Arama** (İdari Daireler, Vergi/İdare Kurulları, Askeri Yüksek İdare Mahkemesi)
 43 |     * **Yerel Hukuk Mahkemeleri:** Bedesten API ile yerel hukuk mahkemesi kararlarına erişim + **Tarih & Kesin Cümle Arama**
 44 |     * **İstinaf Hukuk Mahkemeleri:** Bedesten API ile istinaf mahkemesi kararlarına erişim + **Tarih & Kesin Cümle Arama**
 45 |     * **Kanun Yararına Bozma (KYB):** Bedesten API ile olağanüstü kanun yoluna erişim + **Tarih & Kesin Cümle Arama**
 46 |     * **Emsal (UYAP):** Detaylı kriterlerle emsal karar arama ve karar metinlerini Markdown formatında getirme.
 47 |     * **Uyuşmazlık Mahkemesi:** Form tabanlı kriterlerle karar arama ve karar metinlerini (URL ile erişilen) Markdown formatında getirme.
 48 |     * **Anayasa Mahkemesi (Norm Denetimi):** Kapsamlı kriterlerle norm denetimi kararlarını arama; uzun karar metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 49 |     * **Anayasa Mahkemesi (Bireysel Başvuru):** Kapsamlı kriterlerle bireysel başvuru "Karar Arama Raporu" oluşturma ve listedeki kararların metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 50 |     * **KİK (Kamu İhale Kurulu):** Çeşitli kriterlerle Kurul kararlarını arama; uzun karar metinlerini (varsayılan 5.000 karakterlik) sayfalanmış Markdown formatında getirme.
 51 |     * **Rekabet Kurumu:** Çeşitli kriterlerle Kurul kararlarını arama; karar metinlerini Markdown formatında getirme.
 52 |     * **Sayıştay:** 3 karar türü ile kapsamlı denetim kararlarına erişim + **8 Daire Filtreleme** + **Tarih Aralığı & İçerik Arama** (Genel Kurul yorumlayıcı kararları, Temyiz Kurulu itiraz kararları, Daire ilk derece denetim kararları)
 53 |     * **KVKK (Kişisel Verilerin Korunması Kurulu):** Brave Search API ile veri koruma kararlarını arama; uzun karar metinlerini (5.000 karakterlik) sayfalanmış Markdown formatında getirme + **Türkçe Arama** + **Site Hedeflemeli Arama** (kvkk.gov.tr kararları)
 54 |     * **BDDK (Bankacılık Düzenleme ve Denetleme Kurumu):** Bankacılık düzenleme kararlarını arama; karar metinlerini Markdown formatında getirme + **Optimized Search** + **"Karar Sayısı" Targeting** + **Spesifik URL Filtreleme** (bddk.org.tr/Mevzuat/DokumanGetir)
 55 | 
 56 | * Karar metinlerinin daha kolay işlenebilmesi için Markdown formatına çevrilmesi.
 57 | * Claude Desktop uygulaması ile `fastmcp install` komutu kullanılarak kolay entegrasyon.
 58 | * Yargı MCP artık [5ire](https://5ire.app) gibi Claude Desktop haricindeki MCP istemcilerini de destekliyor!
 59 | ---
 60 | <details>
 61 | <summary>🚀 <strong>Claude Haricindeki Modellerle Kullanmak İçin Çok Kolay Kurulum (Örnek: 5ire için)</strong></summary>
 62 | 
 63 | Bu bölüm, Yargı MCP aracını 5ire gibi Claude Desktop dışındaki MCP istemcileriyle kullanmak isteyenler içindir.
 64 | 
 65 | * **Python Kurulumu:** Sisteminizde Python 3.11 veya üzeri kurulu olmalıdır. Kurulum sırasında "**Add Python to PATH**" (Python'ı PATH'e ekle) seçeneğini işaretlemeyi unutmayın. [Buradan](https://www.python.org/downloads/) indirebilirsiniz.
 66 | * **Git Kurulumu (Windows):** Bilgisayarınıza [git](https://git-scm.com/downloads/win) yazılımını indirip kurun. "Git for Windows/x64 Setup" seçeneğini indirmelisiniz.
 67 | * **`uv` Kurulumu:**
 68 |     * **Windows Kullanıcıları (PowerShell):** Bir CMD ekranı açın ve bu kodu çalıştırın: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
 69 |     * **Mac/Linux Kullanıcıları (Terminal):** Bir Terminal ekranı açın ve bu kodu çalıştırın: `curl -LsSf https://astral.sh/uv/install.sh | sh`
 70 | * **Microsoft Visual C++ Redistributable (Windows):** Bazı Python paketlerinin doğru çalışması için gereklidir. [Buradan](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) indirip kurun.
 71 | * İşletim sisteminize uygun [5ire](https://5ire.app) MCP istemcisini indirip kurun.
 72 | * 5ire'ı açın. **Workspace -> Providers** menüsünden kullanmak istediğiniz LLM servisinin API anahtarını girin.
 73 | * **Tools** menüsüne girin. **+Local** veya **New** yazan butona basın.
 74 |     * **Tool Key:** `yargimcp`
 75 |     * **Name:** `Yargı MCP`
 76 |     * **Command:**
 77 |         ```
 78 |         uvx yargi-mcp
 79 |         ```
 80 |     * **Save** butonuna basarak kaydedin.
 81 | ![5ire ayarları](./5ire-settings.png)
 82 | * Şimdi **Tools** altında **Yargı MCP**'yi görüyor olmalısınız. Üstüne geldiğinizde sağda çıkan butona tıklayıp etkinleştirin (yeşil ışık yanmalı).
 83 | * Artık Yargı MCP ile konuşabilirsiniz.
 84 | 
 85 | </details>
 86 | 
 87 | ---
 88 | <details>
 89 | <summary>⚙️ <strong>Claude Desktop Manuel Kurulumu</strong></summary>
 90 | 
 91 | 1.  **Ön Gereksinimler:** Python, `uv`, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz.
 92 | 2.  Claude Desktop **Settings -> Developer -> Edit Config**.
 93 | 3.  Açılan `claude_desktop_config.json` dosyasına `mcpServers` altına ekleyin:
 94 | 
 95 |     ```json
 96 |     {
 97 |       "mcpServers": {
 98 |         // ... (varsa diğer sunucularınız) ...
 99 |         "Yargı MCP": {
100 |           "command": "uvx",
101 |           "args": [
102 |             "yargi-mcp"
103 |           ]
104 |         }
105 |       }
106 |     }
107 |     ```
108 | 4.  Claude Desktop'ı kapatıp yeniden başlatın.
109 | 
110 | </details>
111 | 
112 | ---
113 | <details>
114 | <summary>🌟 <strong>Gemini CLI ile Kullanım</strong></summary>
115 | 
116 | Yargı MCP'yi Gemini CLI ile kullanmak için:
117 | 
118 | 1. **Ön Gereksinimler:** Python, `uv`, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz.
119 | 
120 | 2. **Gemini CLI ayarlarını yapılandırın:**
121 |    
122 |    Gemini CLI'ın ayar dosyasını düzenleyin:
123 |    - **macOS/Linux:** `~/.gemini/settings.json`
124 |    - **Windows:** `%USERPROFILE%\.gemini\settings.json`
125 |    
126 |    Aşağıdaki `mcpServers` bloğunu ekleyin:
127 |    ```json
128 |    {
129 |      "theme": "Default",
130 |      "selectedAuthType": "###",
131 |      "mcpServers": {
132 |        "yargi_mcp": {
133 |          "command": "uvx",
134 |          "args": [
135 |            "yargi-mcp"
136 |          ]
137 |        }
138 |      }
139 |    }
140 |    ```
141 |    
142 |    **Yapılandırma açıklamaları:**
143 |    - `"yargi_mcp"`: Sunucunuz için yerel bir isim
144 |    - `"command"`: `uvx` komutu (uv'nin paket çalıştırma aracı)
145 |    - `"args"`: GitHub'dan doğrudan Yargı MCP'yi çalıştırmak için gerekli argümanlar
146 | 
147 | 3. **Kullanım:**
148 |    - Gemini CLI'ı başlatın
149 |    - Yargı MCP araçları otomatik olarak kullanılabilir olacaktır
150 |    - Örnek komutlar:
151 |      - "Yargıtay'ın mülkiyet hakkı ile ilgili son kararlarını ara"
152 |      - "Danıştay'ın imar planı iptaline ilişkin kararlarını bul"
153 |      - "Anayasa Mahkemesi'nin ifade özgürlüğü kararlarını getir"
154 | 
155 | </details>
156 | 
157 | <details>
158 | <summary>🛠️ <strong>Kullanılabilir Araçlar (MCP Tools)</strong></summary>
159 | 
160 | Bu FastMCP sunucusu **19 optimize edilmiş MCP aracı** sunar (token verimliliği için optimize edilmiş):
161 | 
162 | ### **Yargıtay Araçları (Birleşik Bedesten API - Token Optimized)**
163 | *Not: Yargıtay araçları token verimliliği için birleşik Bedesten API'ye entegre edilmiştir*
164 | 
165 | ### **Danıştay Araçları (Birleşik Bedesten API - Token Optimized)**
166 | *Not: Danıştay araçları token verimliliği için birleşik Bedesten API'ye entegre edilmiştir*
167 | 
168 | ### **Birleşik Bedesten API Araçları (5 Mahkeme) - 🚀 TOKEN OPTİMİZE**
169 | 1. `search_bedesten_unified(phrase, court_types, birimAdi, kararTarihiStart, kararTarihiEnd, ...)`: **5 mahkeme türünü** birleşik arama (Yargıtay, Danıştay, Yerel Hukuk, İstinaf Hukuk, KYB) + **79 daire filtreleme** + **Tarih & Kesin Cümle Arama**
170 | 2. `get_bedesten_document_markdown(documentId: str)`: Bedesten API'den herhangi bir belgeyi Markdown formatında getirir (HTML/PDF → Markdown)
171 | 
172 | ### **Emsal Karar Araçları (UYAP)**
173 | 3. `search_emsal_detailed_decisions(keyword, ...)`: Emsal (UYAP) kararlarını detaylı kriterlerle arar.
174 | 4. `get_emsal_document_markdown(id: str)`: Belirli bir Emsal kararının metnini Markdown formatında getirir.
175 | 
176 | ### **Uyuşmazlık Mahkemesi Araçları**
177 | 5. `search_uyusmazlik_decisions(icerik, ...)`: Uyuşmazlık Mahkemesi kararlarını çeşitli form kriterleriyle arar.
178 | 6. `get_uyusmazlik_document_markdown_from_url(document_url)`: Bir Uyuşmazlık kararını tam URL'sinden alıp Markdown formatında getirir.
179 | 
180 | ### **Anayasa Mahkemesi Araçları (Birleşik API) - 🚀 TOKEN OPTİMİZE**
181 | 7. `search_anayasa_unified(decision_type, keywords_all, ...)`: AYM kararlarını birleşik arama (Norm Denetimi + Bireysel Başvuru) - **4 araç → 2 araç optimizasyonu**
182 | 8. `get_anayasa_document_unified(document_url, page_number)`: AYM kararlarını birleşik belge getirme - **sayfalanmış Markdown** içeriği
183 | 
184 | ### **KİK (Kamu İhale Kurulu) Araçları**
185 | 9. `search_kik_decisions(karar_tipi, ...)`: KİK (Kamu İhale Kurulu) kararlarını arar. 
186 | 10. `get_kik_document_markdown(karar_id, page_number)`: Belirli bir KİK kararını, Base64 ile encode edilmiş `karar_id`'sini kullanarak alır ve **sayfalanmış Markdown** içeriğini getirir.
187 | ### **Rekabet Kurumu Araçları**
188 |     * `search_rekabet_kurumu_decisions(KararTuru: Literal[...], ...) -> RekabetSearchResult`: Rekabet Kurumu kararlarını arar. `KararTuru` için kullanıcı dostu isimler kullanılır (örn: "Birleşme ve Devralma").
189 |     * `get_rekabet_kurumu_document(karar_id: str, page_number: Optional[int] = 1) -> RekabetDocument`: Belirli bir Rekabet Kurumu kararını `karar_id` ile alır. Kararın PDF formatındaki orijinalinden istenen sayfayı ayıklar ve Markdown formatında döndürür.
190 | 
191 | 
192 | ---
193 | 
194 | * **Sayıştay Araçları (3 Karar Türü + 8 Daire Filtreleme):**
195 |     * `search_sayistay_genel_kurul(karar_no, karar_tarih_baslangic, karar_tamami, ...)`: Sayıştay Genel Kurul (yorumlayıcı) kararlarını arar. **Tarih aralığı** (2006-2024) + **İçerik arama** (400 karakter)
196 |     * `search_sayistay_temyiz_kurulu(ilam_dairesi, kamu_idaresi_turu, temyiz_karar, ...)`: Temyiz Kurulu (itiraz) kararlarını arar. **8 Daire filtreleme** + **Kurum türü** + **Konu sınıflandırması**
197 |     * `search_sayistay_daire(yargilama_dairesi, web_karar_metni, hesap_yili, ...)`: Daire (ilk derece denetim) kararlarını arar. **8 Daire filtreleme** + **Hesap yılı** + **İçerik arama**
198 |     * `get_sayistay_genel_kurul_document_markdown(decision_id: str)`: Genel Kurul kararının tam metnini Markdown formatında getirir
199 |     * `get_sayistay_temyiz_kurulu_document_markdown(decision_id: str)`: Temyiz Kurulu kararının tam metnini Markdown formatında getirir  
200 |     * `get_sayistay_daire_document_markdown(decision_id: str)`: Daire kararının tam metnini Markdown formatında getirir
201 | 
202 | * **KVKK Araçları (Brave Search API + Türkçe Arama):**
203 |     * `search_kvkk_decisions(keywords, page, pageSize, ...)`: KVKK (Kişisel Verilerin Korunması Kurulu) kararlarını Brave Search API ile arar. **Türkçe arama** + **Site hedeflemeli** (`site:kvkk.gov.tr "karar özeti"`) + **Sayfalama desteği**
204 |     * `get_kvkk_document_markdown(decision_url: str, page_number: Optional[int] = 1)`: KVKK kararının tam metnini **sayfalanmış Markdown** formatında getirir (5.000 karakterlik sayfa)
205 | 
206 | ### BDDK Araçları
207 |     * `search_bddk_decisions(keywords, page)`: BDDK (Bankacılık Düzenleme ve Denetleme Kurumu) kararlarını arar. **"Karar Sayısı" targeting** + **Spesifik URL filtreleme** (`bddk.org.tr/Mevzuat/DokumanGetir`) + **Optimized search**
208 |     * `get_bddk_document_markdown(document_id: str, page_number: Optional[int] = 1)`: BDDK kararının tam metnini **sayfalanmış Markdown** formatında getirir (5.000 karakterlik sayfa)
209 | 
210 | </details>
211 | 
212 | ---
213 | 
214 | <details>
215 | <summary>📊 <strong>Kapsamlı İstatistikler & Optimizasyon Başarıları</strong></summary>
216 | 
217 | 🚀 **TOKEN OPTİMİZASYON BAŞARISI:**
218 | - **%61.8 Token Azaltma:** 14,061 → 5,369 tokens (8,692 token tasarrufu)
219 | - **Hedef Aşım:** 10,000 token hedefini 4,631 token aştık
220 | - **Daha Hızlı Yanıt:** Claude AI ile optimize edilmiş etkileşim
221 | - **Korunan İşlevsellik:** %100 özellik desteği devam ediyor
222 | 
223 | **GENEL İSTATİSTİKLER:**
224 | - **Toplam Mahkeme/Kurum:** 13 farklı hukuki kurum (KVKK dahil)
225 | - **Toplam MCP Tool:** 19 optimize edilmiş arama ve belge getirme aracı  
226 | - **Daire/Kurul Filtreleme:** 87 farklı seçenek (52 Yargıtay + 27 Danıştay + 8 Sayıştay)
227 | - **Tarih Filtreleme:** Birleşik Bedesten API aracında ISO 8601 formatında tam tarih aralığı desteği
228 | - **Kesin Cümle Arama:** Birleşik Bedesten API aracında çift tırnak ile tam cümle arama (`"\"mülkiyet kararı\""` formatı)
229 | - **Birleşik API:** 10 ayrı Bedesten aracı → 2 birleşik araç (search_bedesten_unified + get_bedesten_document_markdown)
230 | - **API Kaynağı:** Dual/Triple API desteği ile maksimum kapsama
231 | - **Tam Türk Adalet Sistemi:** Yerel mahkemelerden en yüksek mahkemelere kadar
232 | 
233 | **🏛️ Desteklenen Mahkeme Hiyerarşisi:**
234 | ```
235 | Yerel Mahkemeler → İstinaf → Yargıtay/Danıştay → Anayasa Mahkemesi
236 |      ↓              ↓            ↓                    ↓
237 | Bedesten API   Bedesten API   Dual/Triple API   Norm+Bireysel API
238 | + Tarih + Kesin + Tarih + Kesin + Daire + Tarih   + Gelişmiş
239 |   Cümle Arama    Cümle Arama   + Kesin Cümle     Arama
240 | ```
241 | 
242 | **⚖️ Kapsamlı Filtreleme Özellikleri:**
243 | - **Daire Filtreleme:** 79 seçenek (52 Yargıtay + 27 Danıştay)
244 |   - **Yargıtay:** 52 seçenek (1-23 Hukuk, 1-23 Ceza, Genel Kurullar, Başkanlar Kurulu)
245 |   - **Danıştay:** 27 seçenek (1-17 Daireler, İdare/Vergi Kurulları, Askeri Mahkemeler)
246 | - **Tarih Filtreleme:** 5 Bedesten API aracında ISO 8601 formatı (YYYY-MM-DDTHH:MM:SS.000Z)
247 |   - Tek tarih, tarih aralığı, tek taraflı filtreleme desteği
248 |   - Yargıtay, Danıştay, Yerel Hukuk, İstinaf Hukuk, KYB kararları
249 | - **Kesin Cümle Arama:** 5 Bedesten API aracında çift tırnak formatı
250 |   - Normal arama: `"mülkiyet kararı"` (kelimeler ayrı ayrı)
251 |   - Kesin arama: `"\"mülkiyet kararı\""` (tam cümle olarak)
252 |   - Daha kesin sonuçlar için hukuki terimler ve kavramlar
253 | 
254 | **🔧 OPTİMİZASYON DETAYLARI:**
255 | - **Anayasa Mahkemesi:** 4 araç → 2 birleşik araç (search_anayasa_unified + get_anayasa_document_unified)
256 | - **Yargıtay & Danıştay:** Ana API araçları birleşik Bedesten API'ye entegre edildi
257 | - **Sayıştay:** 6 araç → 2 birleşik araç (search_sayistay_unified + get_sayistay_document_unified)
258 | - **Parameter Optimizasyonu:** pageSize parametreleri optimize edildi
259 | - **Açıklama Optimizasyonu:** Uzun açıklamalar kısaltıldı (örn: KIK karar_metni)
260 | 
261 | </details>
262 | 
263 | ---
264 | 
265 | <details>
266 | <summary>🌐 <strong>Web Service / ASGI Deployment</strong></summary>
267 | 
268 | Yargı MCP artık web servisi olarak da çalıştırılabilir! ASGI desteği sayesinde:
269 | 
270 | - **Web API olarak erişim**: HTTP endpoint'leri üzerinden MCP araçlarına erişim
271 | - **Cloud deployment**: Heroku, Railway, Google Cloud Run, AWS Lambda desteği
272 | - **Docker desteği**: Production-ready Docker container
273 | - **FastAPI entegrasyonu**: REST API ve interaktif dokümantasyon
274 | 
275 | **Hızlı başlangıç:**
276 | ```bash
277 | # ASGI dependencies yükle
278 | pip install yargi-mcp[asgi]
279 | 
280 | # Web servisi olarak başlat
281 | python run_asgi.py
282 | # veya
283 | uvicorn asgi_app:app --host 0.0.0.0 --port 8000
284 | ```
285 | 
286 | Detaylı deployment rehberi için: [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
287 | 
288 | </details>
289 | 
290 | ---
291 | 
292 | 📜 **Lisans**
293 | 
294 | Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için `LICENSE` dosyasına bakınız.
295 | 
```
Page 1/11FirstPrevNextLast