@olib-ai/owl-browser-mcp 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +894 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -20369,7 +20369,7 @@ var openapi_default = {
20369
20369
  info: {
20370
20370
  title: "Owl Browser API",
20371
20371
  description: "REST API for browser automation with anti-detection capabilities",
20372
- version: "1.0.7"
20372
+ version: "1.0.8"
20373
20373
  },
20374
20374
  servers: [
20375
20375
  {
@@ -27318,7 +27318,7 @@ var openapi_default = {
27318
27318
  "/api/execute/ipc_tests_get_report": {
27319
27319
  post: {
27320
27320
  summary: "Ipc Tests Get Report",
27321
- description: "Get a specific IPC test report by run_id. Returns either JSON data or HTML dashboard depending on the format parameter. JSON includes detailed test results, latency stats, resource usage, and failure details. HTML is an interactive dashboard with charts.",
27321
+ description: "Get a specific IPC test report by run_id. Returns JSON data, HTML dashboard, or raw log output depending on the format parameter. JSON includes detailed test results, latency stats, resource usage, and failure details. HTML is an interactive dashboard with charts. Log returns the test client's stdout/stderr output for debugging failures.",
27322
27322
  tags: [
27323
27323
  "General"
27324
27324
  ],
@@ -27335,10 +27335,11 @@ var openapi_default = {
27335
27335
  },
27336
27336
  format: {
27337
27337
  type: "string",
27338
- description: "Report format to return. Options: 'json' (raw test data), 'html' (interactive dashboard). Default: 'json'",
27338
+ description: "Report format to return. Options: 'json' (raw test data), 'html' (interactive dashboard), 'log' (test client stdout/stderr output). Default: 'json'",
27339
27339
  enum: [
27340
27340
  "json",
27341
- "html"
27341
+ "html",
27342
+ "log"
27342
27343
  ]
27343
27344
  }
27344
27345
  },
@@ -27365,7 +27366,7 @@ var openapi_default = {
27365
27366
  "/api/execute/ipc_tests_delete_report": {
27366
27367
  post: {
27367
27368
  summary: "Ipc Tests Delete Report",
27368
- description: "Delete an IPC test report by run_id. Removes both JSON and HTML report files from disk. Use to clean up old test results.",
27369
+ description: "Delete an IPC test report by run_id. Removes JSON, HTML, and log files from disk. Use to clean up old test results.",
27369
27370
  tags: [
27370
27371
  "General"
27371
27372
  ],
@@ -27404,7 +27405,7 @@ var openapi_default = {
27404
27405
  "/api/execute/ipc_tests_clean_all": {
27405
27406
  post: {
27406
27407
  summary: "Ipc Tests Clean All",
27407
- description: "Delete all IPC test reports. Removes all JSON and HTML report files from the reports directory. Use to clean up all test history.",
27408
+ description: "Delete all IPC test reports. Removes all JSON, HTML, and log files from the reports directory. Use to clean up all test history.",
27408
27409
  tags: [
27409
27410
  "General"
27410
27411
  ],
@@ -27542,6 +27543,893 @@ var openapi_default = {
27542
27543
  }
27543
27544
  }
27544
27545
  }
27546
+ },
27547
+ "/api/execute/http_request": {
27548
+ post: {
27549
+ summary: "Http Request",
27550
+ description: "Make an HTTP/HTTPS request with full control over method, headers, body, authentication, proxy, and TLS settings. Supports GET, POST, PUT, DELETE, PATCH, HEAD, and OPTIONS methods. Includes proxy support (HTTP, HTTPS, SOCKS4, SOCKS5, SOCKS5H) and built-in Tor integration for anonymous requests. Returns status code, response headers, body, timing information, and redirect details. Use 'output' parameter to control body format: 'text' for UTF-8, 'base64' for binary content, 'json' for parsed JSON.",
27551
+ tags: [
27552
+ "General"
27553
+ ],
27554
+ requestBody: {
27555
+ required: true,
27556
+ content: {
27557
+ "application/json": {
27558
+ schema: {
27559
+ type: "object",
27560
+ properties: {
27561
+ url: {
27562
+ type: "string",
27563
+ description: "The full URL to request, including protocol (e.g., 'https://api.example.com/data'). Supports http:// and https:// protocols."
27564
+ },
27565
+ method: {
27566
+ type: "string",
27567
+ description: "HTTP method to use. Options: 'GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'. Default: 'GET'",
27568
+ enum: [
27569
+ "GET",
27570
+ "POST",
27571
+ "PUT",
27572
+ "DELETE",
27573
+ "PATCH",
27574
+ "HEAD",
27575
+ "OPTIONS"
27576
+ ]
27577
+ },
27578
+ headers: {
27579
+ type: "string",
27580
+ description: `HTTP headers as JSON object string (e.g., '{"Content-Type": "application/json", "X-Custom": "value"}'). Each key-value pair becomes a request header.`
27581
+ },
27582
+ body: {
27583
+ type: "string",
27584
+ description: "Request body content. For JSON APIs, pass a JSON string and set Content-Type header to 'application/json'. For form data, use URL-encoded format with Content-Type 'application/x-www-form-urlencoded'."
27585
+ },
27586
+ cookies: {
27587
+ type: "string",
27588
+ description: "Cookies to send with the request as 'name=value; name2=value2' format."
27589
+ },
27590
+ auth_type: {
27591
+ type: "string",
27592
+ description: "Authentication type. Options: 'none', 'basic', 'bearer', 'digest'. Default: 'none'",
27593
+ enum: [
27594
+ "none",
27595
+ "basic",
27596
+ "bearer",
27597
+ "digest"
27598
+ ]
27599
+ },
27600
+ auth_username: {
27601
+ type: "string",
27602
+ description: "Username for basic or digest authentication."
27603
+ },
27604
+ auth_password: {
27605
+ type: "string",
27606
+ description: "Password for basic or digest authentication."
27607
+ },
27608
+ auth_token: {
27609
+ type: "string",
27610
+ description: "Bearer token for bearer authentication (without 'Bearer ' prefix)."
27611
+ },
27612
+ proxy_type: {
27613
+ type: "string",
27614
+ description: "Type of proxy server. Options: 'http', 'https', 'socks4', 'socks5', 'socks5h'. Use 'socks5h' for remote DNS resolution (recommended for privacy).",
27615
+ enum: [
27616
+ "http",
27617
+ "https",
27618
+ "socks4",
27619
+ "socks5",
27620
+ "socks5h"
27621
+ ]
27622
+ },
27623
+ proxy_host: {
27624
+ type: "string",
27625
+ description: "Proxy server hostname or IP address."
27626
+ },
27627
+ proxy_port: {
27628
+ type: "string",
27629
+ description: "Proxy server port number."
27630
+ },
27631
+ proxy_username: {
27632
+ type: "string",
27633
+ description: "Username for proxy authentication."
27634
+ },
27635
+ proxy_password: {
27636
+ type: "string",
27637
+ description: "Password for proxy authentication."
27638
+ },
27639
+ use_tor: {
27640
+ type: "boolean",
27641
+ description: "Use built-in Tor proxy (SOCKS5H at 127.0.0.1:9050) for anonymous requests. Overrides any proxy settings. Default: false"
27642
+ },
27643
+ follow_redirects: {
27644
+ type: "boolean",
27645
+ description: "Follow HTTP redirects automatically. Default: true"
27646
+ },
27647
+ max_redirects: {
27648
+ type: "string",
27649
+ description: "Maximum number of redirects to follow. Default: 10"
27650
+ },
27651
+ timeout: {
27652
+ type: "string",
27653
+ description: "Total request timeout in milliseconds. Default: 30000 (30 seconds)"
27654
+ },
27655
+ connect_timeout: {
27656
+ type: "string",
27657
+ description: "Connection timeout in milliseconds. Default: 10000 (10 seconds)"
27658
+ },
27659
+ ssl_verify: {
27660
+ type: "boolean",
27661
+ description: "Verify SSL/TLS certificates. Set to false for self-signed certificates. Default: true"
27662
+ },
27663
+ ca_cert_path: {
27664
+ type: "string",
27665
+ description: "Path to custom CA certificate bundle file (.pem) for SSL verification."
27666
+ },
27667
+ user_agent: {
27668
+ type: "string",
27669
+ description: "Custom User-Agent header string. Overrides default."
27670
+ },
27671
+ output: {
27672
+ type: "string",
27673
+ description: "Response body output format. 'text' for UTF-8 text, 'base64' for binary content encoded as base64, 'json' to attempt JSON parsing. Default: 'text'",
27674
+ enum: [
27675
+ "text",
27676
+ "base64",
27677
+ "json"
27678
+ ]
27679
+ }
27680
+ },
27681
+ required: [
27682
+ "url"
27683
+ ]
27684
+ }
27685
+ }
27686
+ }
27687
+ },
27688
+ responses: {
27689
+ "200": {
27690
+ description: "Successful response"
27691
+ },
27692
+ "400": {
27693
+ description: "Bad request"
27694
+ },
27695
+ "401": {
27696
+ description: "Unauthorized"
27697
+ }
27698
+ }
27699
+ }
27700
+ },
27701
+ "/api/execute/http_download": {
27702
+ post: {
27703
+ summary: "Http Download",
27704
+ description: "Download a file from an HTTP/HTTPS URL and save it to disk. Supports resume for interrupted downloads, custom output paths, proxy configuration, and Tor anonymization. If no output path is specified, the file is saved to /tmp/owl_downloads/ with a filename derived from the URL or Content-Disposition header. Returns the file path, size, content type, and download timing.",
27705
+ tags: [
27706
+ "General"
27707
+ ],
27708
+ requestBody: {
27709
+ required: true,
27710
+ content: {
27711
+ "application/json": {
27712
+ schema: {
27713
+ type: "object",
27714
+ properties: {
27715
+ url: {
27716
+ type: "string",
27717
+ description: "The URL of the file to download. Supports http:// and https:// protocols."
27718
+ },
27719
+ output_path: {
27720
+ type: "string",
27721
+ description: "Full path where the file should be saved. If not specified, saves to /tmp/owl_downloads/ with filename derived from URL or Content-Disposition header."
27722
+ },
27723
+ headers: {
27724
+ type: "string",
27725
+ description: "HTTP headers as JSON object string."
27726
+ },
27727
+ cookies: {
27728
+ type: "string",
27729
+ description: "Cookies to send with the request as 'name=value; name2=value2' format."
27730
+ },
27731
+ proxy_type: {
27732
+ type: "string",
27733
+ description: "Type of proxy server.",
27734
+ enum: [
27735
+ "http",
27736
+ "https",
27737
+ "socks4",
27738
+ "socks5",
27739
+ "socks5h"
27740
+ ]
27741
+ },
27742
+ proxy_host: {
27743
+ type: "string",
27744
+ description: "Proxy server hostname or IP address."
27745
+ },
27746
+ proxy_port: {
27747
+ type: "string",
27748
+ description: "Proxy server port number."
27749
+ },
27750
+ proxy_username: {
27751
+ type: "string",
27752
+ description: "Username for proxy authentication."
27753
+ },
27754
+ proxy_password: {
27755
+ type: "string",
27756
+ description: "Password for proxy authentication."
27757
+ },
27758
+ use_tor: {
27759
+ type: "boolean",
27760
+ description: "Use built-in Tor proxy for anonymous download. Default: false"
27761
+ },
27762
+ timeout: {
27763
+ type: "string",
27764
+ description: "Download timeout in milliseconds. Default: 30000 (30 seconds)"
27765
+ },
27766
+ ssl_verify: {
27767
+ type: "boolean",
27768
+ description: "Verify SSL/TLS certificates. Default: true"
27769
+ },
27770
+ ca_cert_path: {
27771
+ type: "string",
27772
+ description: "Path to custom CA certificate bundle file."
27773
+ },
27774
+ resume: {
27775
+ type: "boolean",
27776
+ description: "Resume an interrupted download if the server supports byte ranges. Default: false"
27777
+ },
27778
+ user_agent: {
27779
+ type: "string",
27780
+ description: "Custom User-Agent header string."
27781
+ }
27782
+ },
27783
+ required: [
27784
+ "url"
27785
+ ]
27786
+ }
27787
+ }
27788
+ }
27789
+ },
27790
+ responses: {
27791
+ "200": {
27792
+ description: "Successful response"
27793
+ },
27794
+ "400": {
27795
+ description: "Bad request"
27796
+ },
27797
+ "401": {
27798
+ description: "Unauthorized"
27799
+ }
27800
+ }
27801
+ }
27802
+ },
27803
+ "/api/execute/ftp_list": {
27804
+ post: {
27805
+ summary: "Ftp List",
27806
+ description: "List the contents of an FTP directory. Returns the directory listing as text. Supports authenticated FTP, FTPS (FTP over SSL/TLS), proxy configuration, and Tor anonymization. The URL must end with a trailing slash for directory listings.",
27807
+ tags: [
27808
+ "General"
27809
+ ],
27810
+ requestBody: {
27811
+ required: true,
27812
+ content: {
27813
+ "application/json": {
27814
+ schema: {
27815
+ type: "object",
27816
+ properties: {
27817
+ url: {
27818
+ type: "string",
27819
+ description: "FTP URL to list (e.g., 'ftp://ftp.example.com/pub/'). Must end with / for directory listing."
27820
+ },
27821
+ username: {
27822
+ type: "string",
27823
+ description: "FTP username. Default: anonymous"
27824
+ },
27825
+ password: {
27826
+ type: "string",
27827
+ description: "FTP password. Default: empty"
27828
+ },
27829
+ proxy_type: {
27830
+ type: "string",
27831
+ description: "Type of proxy server.",
27832
+ enum: [
27833
+ "http",
27834
+ "https",
27835
+ "socks4",
27836
+ "socks5",
27837
+ "socks5h"
27838
+ ]
27839
+ },
27840
+ proxy_host: {
27841
+ type: "string",
27842
+ description: "Proxy server hostname or IP address."
27843
+ },
27844
+ proxy_port: {
27845
+ type: "string",
27846
+ description: "Proxy server port number."
27847
+ },
27848
+ proxy_username: {
27849
+ type: "string",
27850
+ description: "Username for proxy authentication."
27851
+ },
27852
+ proxy_password: {
27853
+ type: "string",
27854
+ description: "Password for proxy authentication."
27855
+ },
27856
+ use_tor: {
27857
+ type: "boolean",
27858
+ description: "Use built-in Tor proxy. Default: false"
27859
+ },
27860
+ timeout: {
27861
+ type: "string",
27862
+ description: "Timeout in milliseconds. Default: 30000"
27863
+ },
27864
+ use_ssl: {
27865
+ type: "boolean",
27866
+ description: "Use FTPS (FTP over SSL/TLS). Default: false"
27867
+ }
27868
+ },
27869
+ required: [
27870
+ "url"
27871
+ ]
27872
+ }
27873
+ }
27874
+ }
27875
+ },
27876
+ responses: {
27877
+ "200": {
27878
+ description: "Successful response"
27879
+ },
27880
+ "400": {
27881
+ description: "Bad request"
27882
+ },
27883
+ "401": {
27884
+ description: "Unauthorized"
27885
+ }
27886
+ }
27887
+ }
27888
+ },
27889
+ "/api/execute/ftp_download": {
27890
+ post: {
27891
+ summary: "Ftp Download",
27892
+ description: "Download a file from an FTP server. Supports authenticated FTP, FTPS (FTP over SSL/TLS), proxy configuration, and Tor anonymization. If no output path is specified, saves to /tmp/owl_downloads/. Returns file path, size, and download timing.",
27893
+ tags: [
27894
+ "General"
27895
+ ],
27896
+ requestBody: {
27897
+ required: true,
27898
+ content: {
27899
+ "application/json": {
27900
+ schema: {
27901
+ type: "object",
27902
+ properties: {
27903
+ url: {
27904
+ type: "string",
27905
+ description: "FTP URL of the file to download (e.g., 'ftp://ftp.example.com/pub/file.tar.gz')."
27906
+ },
27907
+ output_path: {
27908
+ type: "string",
27909
+ description: "Full path where the file should be saved. If not specified, saves to /tmp/owl_downloads/."
27910
+ },
27911
+ username: {
27912
+ type: "string",
27913
+ description: "FTP username. Default: anonymous"
27914
+ },
27915
+ password: {
27916
+ type: "string",
27917
+ description: "FTP password. Default: empty"
27918
+ },
27919
+ proxy_type: {
27920
+ type: "string",
27921
+ description: "Type of proxy server.",
27922
+ enum: [
27923
+ "http",
27924
+ "https",
27925
+ "socks4",
27926
+ "socks5",
27927
+ "socks5h"
27928
+ ]
27929
+ },
27930
+ proxy_host: {
27931
+ type: "string",
27932
+ description: "Proxy server hostname or IP address."
27933
+ },
27934
+ proxy_port: {
27935
+ type: "string",
27936
+ description: "Proxy server port number."
27937
+ },
27938
+ proxy_username: {
27939
+ type: "string",
27940
+ description: "Username for proxy authentication."
27941
+ },
27942
+ proxy_password: {
27943
+ type: "string",
27944
+ description: "Password for proxy authentication."
27945
+ },
27946
+ use_tor: {
27947
+ type: "boolean",
27948
+ description: "Use built-in Tor proxy. Default: false"
27949
+ },
27950
+ timeout: {
27951
+ type: "string",
27952
+ description: "Timeout in milliseconds. Default: 30000"
27953
+ },
27954
+ use_ssl: {
27955
+ type: "boolean",
27956
+ description: "Use FTPS (FTP over SSL/TLS). Default: false"
27957
+ }
27958
+ },
27959
+ required: [
27960
+ "url"
27961
+ ]
27962
+ }
27963
+ }
27964
+ }
27965
+ },
27966
+ responses: {
27967
+ "200": {
27968
+ description: "Successful response"
27969
+ },
27970
+ "400": {
27971
+ description: "Bad request"
27972
+ },
27973
+ "401": {
27974
+ description: "Unauthorized"
27975
+ }
27976
+ }
27977
+ }
27978
+ },
27979
+ "/api/execute/ftp_upload": {
27980
+ post: {
27981
+ summary: "Ftp Upload",
27982
+ description: "Upload a local file to an FTP server. Supports authenticated FTP, FTPS (FTP over SSL/TLS), proxy configuration, and Tor anonymization. Specify the FTP destination URL and local file path.",
27983
+ tags: [
27984
+ "General"
27985
+ ],
27986
+ requestBody: {
27987
+ required: true,
27988
+ content: {
27989
+ "application/json": {
27990
+ schema: {
27991
+ type: "object",
27992
+ properties: {
27993
+ url: {
27994
+ type: "string",
27995
+ description: "FTP URL where the file should be uploaded (e.g., 'ftp://ftp.example.com/uploads/file.txt')."
27996
+ },
27997
+ file_path: {
27998
+ type: "string",
27999
+ description: "Local path of the file to upload."
28000
+ },
28001
+ username: {
28002
+ type: "string",
28003
+ description: "FTP username. Default: anonymous"
28004
+ },
28005
+ password: {
28006
+ type: "string",
28007
+ description: "FTP password. Default: empty"
28008
+ },
28009
+ proxy_type: {
28010
+ type: "string",
28011
+ description: "Type of proxy server.",
28012
+ enum: [
28013
+ "http",
28014
+ "https",
28015
+ "socks4",
28016
+ "socks5",
28017
+ "socks5h"
28018
+ ]
28019
+ },
28020
+ proxy_host: {
28021
+ type: "string",
28022
+ description: "Proxy server hostname or IP address."
28023
+ },
28024
+ proxy_port: {
28025
+ type: "string",
28026
+ description: "Proxy server port number."
28027
+ },
28028
+ proxy_username: {
28029
+ type: "string",
28030
+ description: "Username for proxy authentication."
28031
+ },
28032
+ proxy_password: {
28033
+ type: "string",
28034
+ description: "Password for proxy authentication."
28035
+ },
28036
+ use_tor: {
28037
+ type: "boolean",
28038
+ description: "Use built-in Tor proxy. Default: false"
28039
+ },
28040
+ timeout: {
28041
+ type: "string",
28042
+ description: "Timeout in milliseconds. Default: 30000"
28043
+ },
28044
+ use_ssl: {
28045
+ type: "boolean",
28046
+ description: "Use FTPS (FTP over SSL/TLS). Default: false"
28047
+ }
28048
+ },
28049
+ required: [
28050
+ "url",
28051
+ "file_path"
28052
+ ]
28053
+ }
28054
+ }
28055
+ }
28056
+ },
28057
+ responses: {
28058
+ "200": {
28059
+ description: "Successful response"
28060
+ },
28061
+ "400": {
28062
+ description: "Bad request"
28063
+ },
28064
+ "401": {
28065
+ description: "Unauthorized"
28066
+ }
28067
+ }
28068
+ }
28069
+ },
28070
+ "/api/execute/http_session_create": {
28071
+ post: {
28072
+ summary: "Http Session Create",
28073
+ description: "Create a persistent HTTP session with automatic cookie management. Cookies received from servers are stored and automatically sent with subsequent requests in the same session. Configure default headers, proxy, user agent, and TLS settings that apply to all requests in the session. Returns a session_id for use with http_session_request and other session tools. Maximum 64 concurrent sessions.",
28074
+ tags: [
28075
+ "General"
28076
+ ],
28077
+ requestBody: {
28078
+ required: true,
28079
+ content: {
28080
+ "application/json": {
28081
+ schema: {
28082
+ type: "object",
28083
+ properties: {
28084
+ headers: {
28085
+ type: "string",
28086
+ description: "Default HTTP headers as JSON object string. Applied to all session requests unless overridden."
28087
+ },
28088
+ user_agent: {
28089
+ type: "string",
28090
+ description: "Default User-Agent for all session requests."
28091
+ },
28092
+ follow_redirects: {
28093
+ type: "boolean",
28094
+ description: "Default redirect following behavior. Default: true"
28095
+ },
28096
+ max_redirects: {
28097
+ type: "string",
28098
+ description: "Default maximum redirects. Default: 10"
28099
+ },
28100
+ ssl_verify: {
28101
+ type: "boolean",
28102
+ description: "Default SSL verification. Default: true"
28103
+ },
28104
+ ca_cert_path: {
28105
+ type: "string",
28106
+ description: "Default CA certificate path for the session."
28107
+ },
28108
+ proxy_type: {
28109
+ type: "string",
28110
+ description: "Default proxy type for the session.",
28111
+ enum: [
28112
+ "http",
28113
+ "https",
28114
+ "socks4",
28115
+ "socks5",
28116
+ "socks5h"
28117
+ ]
28118
+ },
28119
+ proxy_host: {
28120
+ type: "string",
28121
+ description: "Default proxy host."
28122
+ },
28123
+ proxy_port: {
28124
+ type: "string",
28125
+ description: "Default proxy port."
28126
+ },
28127
+ proxy_username: {
28128
+ type: "string",
28129
+ description: "Default proxy username."
28130
+ },
28131
+ proxy_password: {
28132
+ type: "string",
28133
+ description: "Default proxy password."
28134
+ },
28135
+ use_tor: {
28136
+ type: "boolean",
28137
+ description: "Use built-in Tor proxy for all session requests. Default: false"
28138
+ }
28139
+ }
28140
+ }
28141
+ }
28142
+ }
28143
+ },
28144
+ responses: {
28145
+ "200": {
28146
+ description: "Successful response"
28147
+ },
28148
+ "400": {
28149
+ description: "Bad request"
28150
+ },
28151
+ "401": {
28152
+ description: "Unauthorized"
28153
+ }
28154
+ }
28155
+ }
28156
+ },
28157
+ "/api/execute/http_session_request": {
28158
+ post: {
28159
+ summary: "Http Session Request",
28160
+ description: "Make an HTTP request within a persistent session. Cookies from previous responses are automatically included. Session defaults (headers, proxy, user agent) are applied but can be overridden per-request. New cookies received are stored in the session for future requests. Ideal for multi-step workflows like login followed by authenticated API calls.",
28161
+ tags: [
28162
+ "General"
28163
+ ],
28164
+ requestBody: {
28165
+ required: true,
28166
+ content: {
28167
+ "application/json": {
28168
+ schema: {
28169
+ type: "object",
28170
+ properties: {
28171
+ session_id: {
28172
+ type: "string",
28173
+ description: "The session ID returned by http_session_create."
28174
+ },
28175
+ url: {
28176
+ type: "string",
28177
+ description: "The full URL to request."
28178
+ },
28179
+ method: {
28180
+ type: "string",
28181
+ description: "HTTP method. Default: 'GET'",
28182
+ enum: [
28183
+ "GET",
28184
+ "POST",
28185
+ "PUT",
28186
+ "DELETE",
28187
+ "PATCH",
28188
+ "HEAD",
28189
+ "OPTIONS"
28190
+ ]
28191
+ },
28192
+ headers: {
28193
+ type: "string",
28194
+ description: "Additional HTTP headers as JSON object string. Merged with session default headers."
28195
+ },
28196
+ body: {
28197
+ type: "string",
28198
+ description: "Request body content."
28199
+ },
28200
+ cookies: {
28201
+ type: "string",
28202
+ description: "Additional cookies for this request."
28203
+ },
28204
+ auth_type: {
28205
+ type: "string",
28206
+ description: "Authentication type for this request.",
28207
+ enum: [
28208
+ "none",
28209
+ "basic",
28210
+ "bearer",
28211
+ "digest"
28212
+ ]
28213
+ },
28214
+ auth_username: {
28215
+ type: "string",
28216
+ description: "Username for authentication."
28217
+ },
28218
+ auth_password: {
28219
+ type: "string",
28220
+ description: "Password for authentication."
28221
+ },
28222
+ auth_token: {
28223
+ type: "string",
28224
+ description: "Bearer token for authentication."
28225
+ },
28226
+ follow_redirects: {
28227
+ type: "boolean",
28228
+ description: "Override session redirect behavior."
28229
+ },
28230
+ timeout: {
28231
+ type: "string",
28232
+ description: "Request timeout in milliseconds."
28233
+ },
28234
+ connect_timeout: {
28235
+ type: "string",
28236
+ description: "Connection timeout in milliseconds."
28237
+ },
28238
+ ssl_verify: {
28239
+ type: "boolean",
28240
+ description: "Override session SSL verification."
28241
+ },
28242
+ user_agent: {
28243
+ type: "string",
28244
+ description: "Override session User-Agent."
28245
+ },
28246
+ output: {
28247
+ type: "string",
28248
+ description: "Response body output format. Default: 'text'",
28249
+ enum: [
28250
+ "text",
28251
+ "base64",
28252
+ "json"
28253
+ ]
28254
+ }
28255
+ },
28256
+ required: [
28257
+ "session_id",
28258
+ "url"
28259
+ ]
28260
+ }
28261
+ }
28262
+ }
28263
+ },
28264
+ responses: {
28265
+ "200": {
28266
+ description: "Successful response"
28267
+ },
28268
+ "400": {
28269
+ description: "Bad request"
28270
+ },
28271
+ "401": {
28272
+ description: "Unauthorized"
28273
+ }
28274
+ }
28275
+ }
28276
+ },
28277
+ "/api/execute/http_session_get_cookies": {
28278
+ post: {
28279
+ summary: "Http Session Get Cookies",
28280
+ description: "Get all cookies stored in a session. Optionally filter by URL to get only cookies that would be sent to a specific domain. Returns cookies as a JSON array with domain, name, value, path, expiry, secure, and httponly fields.",
28281
+ tags: [
28282
+ "General"
28283
+ ],
28284
+ requestBody: {
28285
+ required: true,
28286
+ content: {
28287
+ "application/json": {
28288
+ schema: {
28289
+ type: "object",
28290
+ properties: {
28291
+ session_id: {
28292
+ type: "string",
28293
+ description: "The session ID."
28294
+ },
28295
+ url: {
28296
+ type: "string",
28297
+ description: "Optional URL filter. Only returns cookies that would be sent to this URL."
28298
+ }
28299
+ },
28300
+ required: [
28301
+ "session_id"
28302
+ ]
28303
+ }
28304
+ }
28305
+ }
28306
+ },
28307
+ responses: {
28308
+ "200": {
28309
+ description: "Successful response"
28310
+ },
28311
+ "400": {
28312
+ description: "Bad request"
28313
+ },
28314
+ "401": {
28315
+ description: "Unauthorized"
28316
+ }
28317
+ }
28318
+ }
28319
+ },
28320
+ "/api/execute/http_session_set_cookies": {
28321
+ post: {
28322
+ summary: "Http Session Set Cookies",
28323
+ description: "Import cookies into a session. Accepts either a JSON array of cookie objects with domain, name, value, path fields, or Netscape cookie format lines. Useful for importing cookies from browser contexts (browser_get_cookies) into HTTP sessions for non-DOM operations.",
28324
+ tags: [
28325
+ "General"
28326
+ ],
28327
+ requestBody: {
28328
+ required: true,
28329
+ content: {
28330
+ "application/json": {
28331
+ schema: {
28332
+ type: "object",
28333
+ properties: {
28334
+ session_id: {
28335
+ type: "string",
28336
+ description: "The session ID."
28337
+ },
28338
+ cookies: {
28339
+ type: "string",
28340
+ description: `Cookies to set. Accepts either a JSON array of cookie objects (e.g., '[{"domain": ".example.com", "name": "session", "value": "abc123", "path": "/"}]') or Netscape cookie format lines.`
28341
+ }
28342
+ },
28343
+ required: [
28344
+ "session_id",
28345
+ "cookies"
28346
+ ]
28347
+ }
28348
+ }
28349
+ }
28350
+ },
28351
+ responses: {
28352
+ "200": {
28353
+ description: "Successful response"
28354
+ },
28355
+ "400": {
28356
+ description: "Bad request"
28357
+ },
28358
+ "401": {
28359
+ description: "Unauthorized"
28360
+ }
28361
+ }
28362
+ }
28363
+ },
28364
+ "/api/execute/http_session_close": {
28365
+ post: {
28366
+ summary: "Http Session Close",
28367
+ description: "Close and destroy an HTTP session, freeing all stored cookies and resources. The session_id becomes invalid after this call.",
28368
+ tags: [
28369
+ "General"
28370
+ ],
28371
+ requestBody: {
28372
+ required: true,
28373
+ content: {
28374
+ "application/json": {
28375
+ schema: {
28376
+ type: "object",
28377
+ properties: {
28378
+ session_id: {
28379
+ type: "string",
28380
+ description: "The session ID to close and destroy."
28381
+ }
28382
+ },
28383
+ required: [
28384
+ "session_id"
28385
+ ]
28386
+ }
28387
+ }
28388
+ }
28389
+ },
28390
+ responses: {
28391
+ "200": {
28392
+ description: "Successful response"
28393
+ },
28394
+ "400": {
28395
+ description: "Bad request"
28396
+ },
28397
+ "401": {
28398
+ description: "Unauthorized"
28399
+ }
28400
+ }
28401
+ }
28402
+ },
28403
+ "/api/execute/http_session_list": {
28404
+ post: {
28405
+ summary: "Http Session List",
28406
+ description: "List all active HTTP sessions with their IDs, creation time, last used time, request count, and configuration summary. Useful for managing multiple concurrent sessions.",
28407
+ tags: [
28408
+ "General"
28409
+ ],
28410
+ requestBody: {
28411
+ required: true,
28412
+ content: {
28413
+ "application/json": {
28414
+ schema: {
28415
+ type: "object",
28416
+ properties: {}
28417
+ }
28418
+ }
28419
+ }
28420
+ },
28421
+ responses: {
28422
+ "200": {
28423
+ description: "Successful response"
28424
+ },
28425
+ "400": {
28426
+ description: "Bad request"
28427
+ },
28428
+ "401": {
28429
+ description: "Unauthorized"
28430
+ }
28431
+ }
28432
+ }
27545
28433
  }
27546
28434
  }
27547
28435
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olib-ai/owl-browser-mcp",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "MCP server for Owl Browser HTTP API - 157 browser automation tools with anti-detection",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",