Proposal: optional per-server authentication for remote MCP pipelines
Los mantenedores suelen responder en 5 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- api, authentication, backend
Línea de trabajo
Look at the build() and load_pipeline_context() functions to see how remote MCP server URLs are passed to mcp-remote. The issue mentions PR #425 which touched remote MCP configuration; review its changes. Determine if the existing bridge or a FastMCP-native transport is used. A synthetic local authenticated MCP service test is proposed as a follow-up.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem? Please describe.
UltraRAG accepts HTTP(S) MCP server paths in a pipeline. In the current build() and load_pipeline_context() paths, the remote client configuration passes the URL to mcp-remote without a per-server authentication option. A user who has an authenticated remote MCP service therefore has no documented way to supply its Bearer header through the pipeline configuration. This is a source-level observation; I have not claimed a successful remote connection or run a hosted service.
Describe the solution you'd like
Before preparing a PR, could the maintainers clarify whether authenticated remote MCP servers are within UltraRAG's intended scope? If so, would you prefer an optional per-server header reference resolved from an environment variable at runtime, and should it use the existing bridge or a FastMCP-native remote transport? I would aim to keep credentials out of tracked/generated configuration and logs, apply the same behavior in build and run, and leave local and unauthenticated servers unchanged. A subsequent PR could include a synthetic local authenticated MCP service test covering an accepted token, a 401 response, tool invocation, and cleanup.
Describe alternatives you've considered
A user-managed local proxy or custom stdio wrapper could inject credentials, but each user would have to deploy and maintain it. I have not verified that approach with UltraRAG and would welcome guidance on the preferred connection model before implementing anything upstream.
Additional context
I noticed #425 touched the remote MCP configuration and was closed without a merge or public explanation. I do not want to duplicate that change; please let me know if the remote bridge is intentionally out of scope.
Disclosure: this request is motivated in part by work to make the Baizhi Cloud toolkit usable in Agent/RAG workflows. Baizhi would be only an optional example, not a default server or endorsement. Its hosted service requires a user-supplied key and may incur usage charges; the published plugin code does not include the hosted backend. I have not tested Baizhi against UltraRAG or used a live key for this proposal.
- Lenguaje dominante
- Python
- Estrellas
- 5.7k
- Forks
- 450
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenBMB/UltraRAG
-
Dificultad 3/5 1-2 días Aptitud para principiantes 57/100
Los mantenedores suelen responder en 5 días
-
【Security Vulnerability Report】CWE-22 /file endpoint unauthenticated arbitrary file read (CVSS 7.5)Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Los mantenedores suelen responder en 5 días
-
[SECURITY] Arbitrary file read via absolute path in MCP prompt check_passages (CWE-22, CVSS 7.5)Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 5 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
Los mantenedores suelen responder en 5 días
-
Bug: CitationRegistry global state causes cross-request citation contaminationPosiblemente ocupada @ump45nose la tomó hace 59 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 5 días
Todos los issues de OpenBMB/UltraRAG
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NVIDIA/earth2studio#1241 ·
Los mantenedores suelen responder en 3 días
-
docs(types): update the collection binding note now that typed collections shipped in pycubrid 1.9.0Abiertodocumentation priority: low size: S
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cubrid-lab/sqlalchemy-cubrid#768 ·
Los mantenedores suelen responder en 1 día
-
--csv-bom was never wired up: PR #850 added an unused helper parameter, so #846 is not fixedAbiertobug help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Broken link in index.rstAbiertodocumentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
ansys/pydpf-core#3547 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
OktoLabsAI/okto-pulse#114 ·
Los mantenedores suelen responder en 1 día