github Python re-analysis due

OpenBMB/UltraRAG

github

A Low-Code MCP Framework for Building Complex and Innovative RAG Pipelines

maintainer
OpenBMB
license
Apache-2.0
first seen
2026-06-01
last seen
2026-09-02
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 41 tools
transport stdio · http counts 41 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • assign_citation_ids
  • assign_citation_ids_stateful
  • check_model_state
  • evaluate
  • evaluate_trec
  • evaluate_trec_pvalue
  • evisrag_output_extract_from_special
  • get_global_memory
  • greet
  • init_citation_registry
  • ircot_check_end
  • ircot_extract_ans
  • ircot_get_first_sent
  • iterretgen_nextquery
  • merge_passages
  • output_extract_from_boxed
  • r1_searcher_check
  • r1_searcher_query_extract
  • route1
  • route2
  • save_memory
  • search_o1_combine_final_information
  • search_o1_combine_list
  • search_o1_extract_final_information
  • search_o1_init_list
  • search_o1_query_extract
  • search_o1_reasoning_extract
  • search_r1_check
  • search_r1_query_extract
  • surveycpm_after_extend
  • surveycpm_after_init_plan
  • surveycpm_after_write
  • surveycpm_check_completion
  • surveycpm_format_output
  • surveycpm_init_citation_registry
  • surveycpm_parse_search_response
  • surveycpm_process_passages
  • surveycpm_process_passages_with_citation
  • surveycpm_state_init
  • surveycpm_update_state
  • webnote_check_page
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 015e838 · analyzer v33 · 2w ago

skills & prompt files 2

code evidence vv0.3.0.2 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 92

filesystem 21

  • fs OpenBMB-UltraRAG-015e838/script/case_study.py :63 txt = open(path, "r", encoding="utf-8").read().strip()
  • fs OpenBMB-UltraRAG-015e838/script/deploy_retriever_server.py :31 with open(path, "rb") as f:
  • fs (weak) OpenBMB-UltraRAG-015e838/servers/benchmark/src/benchmark.py :3 from pathlib import Path
  • fs (weak) OpenBMB-UltraRAG-015e838/servers/corpus/src/corpus.py :6 import shutil
  • fs OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :289 with open(qrels_path, "r", encoding="utf-8") as f:
  • fs OpenBMB-UltraRAG-015e838/servers/generation/src/generation.py :28 devnull = os.open(os.devnull, os.O_WRONLY)
  • fs OpenBMB-UltraRAG-015e838/servers/generation/src/local_generation.py :101 with open(s, "rb") as f:
  • fs OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :4 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/servers/prompt/src/prompt.py :3 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/faiss_backend.py :4 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/milvus_backend.py :5 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :4 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/src/ultrarag/api.py :51 with open(param_file, "r") as f:
  • fs OpenBMB-UltraRAG-015e838/src/ultrarag/client.py :10 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/src/ultrarag/server.py :8 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/app.py :12 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/auth.py :6 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/chat_store.py :7 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/kb_visibility_store.py :6 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/pipeline_manager.py :11 from pathlib import Path
  • fs OpenBMB-UltraRAG-015e838/ui/backend/storage_paths.py :4 from pathlib import Path

shell / exec 3

  • shell (weak) OpenBMB-UltraRAG-015e838/servers/corpus/src/corpus.py :7 import subprocess
  • shell OpenBMB-UltraRAG-015e838/src/ultrarag/mcp_exceptions.py :2 import subprocess
  • shell OpenBMB-UltraRAG-015e838/src/ultrarag/utils.py :5 import subprocess

network 5

  • net OpenBMB-UltraRAG-015e838/servers/reranker/src/reranker.py :5 import aiohttp
  • net OpenBMB-UltraRAG-015e838/servers/retriever/src/index_backends/milvus_backend.py :9 from urllib.parse import urlparse
  • net OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :7 import aiohttp
  • net OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/zhipuai_backend.py :7 import aiohttp
  • net OpenBMB-UltraRAG-015e838/ui/backend/app.py :14 from urllib.parse import quote

secrets 6

  • secrets OpenBMB-UltraRAG-015e838/servers/generation/src/generation.py :221 api_key = cfg.get("api_key") or os.environ.get("LLM_API_KEY")
  • secrets OpenBMB-UltraRAG-015e838/servers/generation/src/local_generation.py :35 api_key = openai_cfg.get("api_key") or os.environ.get("LLM_API_KEY")
  • secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/retriever.py :323 api_key = self.cfg.get("api_key") or os.environ.get("RETRIEVER_API_KEY")
  • secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/exa_backend.py :26 api_key = self.config.get("api_key") or os.environ.get("EXA_API_KEY", "")
  • secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/tavily_backend.py :37 api_key = self.config.get("api_key") or os.environ.get("TAVILY_API_KEY", "")
  • secrets OpenBMB-UltraRAG-015e838/servers/retriever/src/websearch_backends/zhipuai_backend.py :18 api_key = self.config.get("api_key") or os.environ.get("ZHIPUAI_API_KEY", "")

database 3

  • db OpenBMB-UltraRAG-015e838/ui/backend/auth.py :4 import sqlite3
  • db OpenBMB-UltraRAG-015e838/ui/backend/chat_store.py :5 import sqlite3
  • db OpenBMB-UltraRAG-015e838/ui/backend/kb_visibility_store.py :4 import sqlite3

tool registrations 41

  • search_r1_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :11
  • r1_searcher_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :39
  • iterretgen_nextquery OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :67
  • output_extract_from_boxed OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :88
  • ircot_get_first_sent OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :127
  • ircot_extract_ans OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :149
  • search_o1_init_list OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :170
  • search_o1_combine_list OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :189
  • search_o1_query_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :230
  • search_o1_reasoning_extract OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :257
  • search_o1_extract_final_information OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :280
  • search_o1_combine_final_information OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :303
  • merge_passages OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :335
  • evisrag_output_extract_from_special OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :355
  • assign_citation_ids OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :376
  • init_citation_registry OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :428
  • assign_citation_ids_stateful OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :442
  • surveycpm_init_citation_registry OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :504
  • surveycpm_process_passages_with_citation OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :518
  • surveycpm_state_init OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1084
  • surveycpm_parse_search_response OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1111
  • surveycpm_process_passages OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1141
  • surveycpm_after_init_plan OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1188
  • surveycpm_after_write OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1247
  • surveycpm_after_extend OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1326
  • surveycpm_update_state OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1411
  • surveycpm_check_completion OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1537
  • surveycpm_format_output OpenBMB-UltraRAG-015e838/servers/custom/src/custom.py :1781
  • evaluate OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :479
  • evaluate_trec OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :501
  • evaluate_trec_pvalue OpenBMB-UltraRAG-015e838/servers/evaluation/src/evaluation.py :556
  • get_global_memory OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :53
  • save_memory OpenBMB-UltraRAG-015e838/servers/memory/src/memory.py :73
  • route1 OpenBMB-UltraRAG-015e838/servers/router/src/router.py :23
  • route2 OpenBMB-UltraRAG-015e838/servers/router/src/router.py :46
  • ircot_check_end OpenBMB-UltraRAG-015e838/servers/router/src/router.py :60
  • search_r1_check OpenBMB-UltraRAG-015e838/servers/router/src/router.py :80
  • webnote_check_page OpenBMB-UltraRAG-015e838/servers/router/src/router.py :104
  • r1_searcher_check OpenBMB-UltraRAG-015e838/servers/router/src/router.py :124
  • check_model_state OpenBMB-UltraRAG-015e838/servers/router/src/router.py :205
  • greet OpenBMB-UltraRAG-015e838/servers/sayhello/src/sayhello.py :8

declared dependencies 44

  • fastmcp@>=3.3.1,<3.4.5
  • mcp@*
  • rich@*
  • pandas@*
  • Jinja2@*
  • openai@*
  • httpx@*
  • python-dotenv@*
  • PyYAML@*
  • tqdm@*
  • requests@*
  • orjson@*
  • tabulate@*
  • aiohttp@*
  • pillow@*
  • flask@*
  • numpy@>=2,<2.4
  • fakeredis@*
  • pymilvus@*
  • pypinyin@*
  • jieba@*
  • charset-normalizer@*
  • python-docx@*
  • pymupdf@*
  • chonkie@*
  • tiktoken@*
  • infinity-emb@*
  • sentence-transformers@*
  • bm25s@*
  • faiss-gpu-cu12@*
  • exa_py@*
  • tavily-python@*
  • numba@*
  • torch@*
  • fastapi@*
  • uvicorn@*
  • pydantic@*
  • vllm@==0.22.1
  • transformers@*
  • xgrammar@<0.2.4
  • rouge-score@*
  • pytrec-eval-terrier@*
  • mineru@>=3,<4
  • ultrarag@*

transport_posture 1

  • binds all interfaces (0.0.0.0) OpenBMB-UltraRAG-015e838/ui/backend/app.py :2852 "Security warning: Debug mode should not be enabled with host='0.0.0.0'. "